Domanda

Da una rapida ricerca su Google e un articolo di Wikipedia sulla ereditarietà multipla, che cita:

  

L'ereditarietà multipla si riferisce ad una caratteristica di alcuni linguaggi di programmazione orientati agli oggetti in cui una classe può ereditare i comportamenti e le caratteristiche da più di una superclasse. Questo contrasta con l'ereditarietà singola, dove una classe può ereditare da al massimo una superclasse.

Capisco che PHP non consente l'ereditarietà multipla. Quello che non riesco a trovare una risposta chiara, però, è se permette più di una classe di estendere una superclasse. Esempio:

class a {}
class b extends a {}
class c extends a {}

In termini di quello che sto cercando di fare, sto facendo un gioco di ruolo e vogliono una classe di caratteri 'generica' per includere tutti i metodi e le proprietà che rendono il modello di un carattere. Poi voglio classi per includere specifiche per ogni tipo di carattere (guerriero, mago, ecc), come le statistiche modificatori e attacchi speciali.

È possibile?

È stato utile?

Soluzione

Si, è perfettamente possibile. L'intero scopo di eredità è che più i bambini possono ereditare funzionalità comuni da un genitore.

Altri suggerimenti

Sì, più classi può estendere la stessa classe, secondo il vostro esempio di codice.

Questa è la base della programmazione orientata agli oggetti. E 'possibile.

Sì, ogni classe può estendere una classe base. Nel tuo esempio, semplicemente non è possibile per la classe C di estendere sia a che b.

Quindi, in un esempio regolato come quello sopra

class a {}
class b extends a {}
class c extends b {}

c non poteva arrivare a proprietà di un?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top