Inherits class [Résolu]

cs_ShayW 3238 Messages postés jeudi 26 novembre 2009Date d'inscription 14 mars 2018 Dernière intervention - 20 déc. 2012 à 19:18 - Dernière réponse : foliv57 423 Messages postés vendredi 17 novembre 2006Date d'inscription 15 juillet 2014 Dernière intervention
- 20 déc. 2012 à 20:12
Bonjour

quelle est la différence entre heriter
une class ou faire passer comme parametre

ex 1
P
ublic class ClassA
   Inherits PictureBox
 Public Sub New(ByVal position As Point)
      Me.Location = New Point(position)
      Me.width = 100
      me.height = 100
  End Sub 
 end class
 'dans la form
 Private pic1  As ClassA
 dans le load
  pic1 = new classA(new point(10,10)
  me.controls.add(pic1)


ex 2
Public Class classB
 Public Sub New(byref picA as picturebox,ByVal position As Point)
     picA.Location = New Point(position)
      picA.width = 100
      picA.height = 100
  End Sub 
 end class
'dans la form
 Private pic1  As ClassB
 private picA as new picturebox
 dans le load
  pic1 = new classB(picA,new point(10,10)
  me.controls.add(pic1)


merci
Afficher la suite 

2 réponses

Répondre au sujet
foliv57 423 Messages postés vendredi 17 novembre 2006Date d'inscription 15 juillet 2014 Dernière intervention - 20 déc. 2012 à 20:07
+3
Utile
La différence est qu'avec l'héritage, votre objet héritera de toutes les propriétés de la classe de base et pourra être considéré comme une PictureBox si nécessaire.
Exemple en utilisant une propriété de la classe de base
Dim pic1 = new classA(new point(10,10))
pic1.Image = MonImage

Exemple de cast
Dim pic1 = new classA(new point(10,10))
Dim monPict As PictureBox = CType(pic1, PictureBox)


Dans l'autre cas, la picture box n'est qu'une variable de votre objet. Il faudra créer une propriété pour pouvoir accéder à ces propriétés.
Exemple:
Dim pic1 = new classB(picA,new point(10,10))
pic1.MonPictureBox.Image = MonImage

Ou MonPictureBox est :
Public ReadOnly Property MonPictureBox As PictureBox
        Get
            Return picA 
        End Get
    End Property

Et la classe ClassB ne pourra pas être considéré comme une PictureBox.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de foliv57
foliv57 423 Messages postés vendredi 17 novembre 2006Date d'inscription 15 juillet 2014 Dernière intervention - 20 déc. 2012 à 20:12
+3
Utile
D'ailleurs dans votre exemple de ClassB, vous ne pouvais pas faire
pic1 = new classB(picA,new point(10,10))
  me.controls.add(pic1)


Vous devriez avoir une erreur de compilation car pict1 n'est pas un contrôle.

Dans le cas de l'héritage ça va marcher car ClassA hérite de PictureBox qui à un certain niveau hérite de la classe Control. L'objet peut donc être utilisé comme un contrôle.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de foliv57

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.