Classe abstraite

Résolu
cs_oxkao Messages postés 7 Date d'inscription samedi 24 janvier 2009 Statut Membre Dernière intervention 5 mai 2010 - 2 juin 2009 à 15:16
cs_oxkao Messages postés 7 Date d'inscription samedi 24 janvier 2009 Statut Membre Dernière intervention 5 mai 2010 - 5 juin 2009 à 09:24
bonjours,

voili voilou je me suis mis à python et je pensais (en tant que langage objet) retrouver les mêmes principe qu'en C++ ou java

je cherche donc à avoir une classe (abstraite) avec des attributs qui seront commun à plusieurs classe
genre :

abstract class Composant
string  nom
int num
class Ecran
int taille
class Souris
int nbBouton
je souhaiterais que mes classe Ecran et Souris hérite des attribut de la classe composant

heu j'ai trouver sa : http://iihm.imag.fr/blanch/howtos/Python.html
mais j'ai rien compris au duck typing
en gros je pensais faire une classe
class Composant (object):

    def __init__(self,__nom,__numSerie,__marque):
        self.__nom = __nom
        self.__numSerie = __numSerie
        self.__marque = __marque
et faire hériter à mes autre classe
import composant
class Ecran (Composant):

    def __init__(self,__taille,__nom,__numSerie,__marque):
        self.__taille =__taille
        self.__nom = __nom
        self.__numSerie =__numSerie
        self.__marque = __marque
mais en fait le souci c'est que je pourrais toujours (si la folie m'envahis un bref instant) faire une instanciation de la classe Composant
un peu perturbant

en plus je galère un peu pour les variables je suis pas encore très au point  du faite qu'on est pas besoin d'assesseur get et set et que rien ne soit privée en python :/

merci d'avance
A voir également:

4 réponses

cs_gaulthier Messages postés 9 Date d'inscription samedi 2 juin 2007 Statut Membre Dernière intervention 3 juin 2009
3 juin 2009 à 13:07
Pour l'héritage de classe :

class Composant ():
    def __init__(self, nom, numSerie, marque):
        self.nom = nom
        self.numSerie = numSerie
        self.marque = marque

    def affichage(self):
        print self.nom, self.numSerie, self.marque,

class Ecran (Composant):
    def __init__(self,taille,nom,numSerie,marque):
        #Héritage des attributs et méthodes de Composant
        Composant.__init__(self, nom, numSerie, marque)

        self.taille = taille

    def affichage(self):
        #Surcharge de la méthode affichage de Compsant
        Composant.affichage(self)
        print self.taille

a = Ecran(22,"toto ^_^", "jenesaisquoimettre", "Toshiba")
a.affichage()

Jsp que l'exemple sera assez claire :)
3
Rejoignez-nous