Inherits class [Résolu]

Messages postés
3238
Date d'inscription
jeudi 26 novembre 2009
Dernière intervention
14 mars 2018
- 20 déc. 2012 à 19:18 - Dernière réponse :
Messages postés
423
Date d'inscription
vendredi 17 novembre 2006
Dernière intervention
15 juillet 2014
- 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 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
423
Date d'inscription
vendredi 17 novembre 2006
Dernière intervention
15 juillet 2014
- 20 déc. 2012 à 20:07
3
Merci
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.

Merci foliv57 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 87 internautes ce mois-ci

Commenter la réponse de foliv57
Meilleure réponse
Messages postés
423
Date d'inscription
vendredi 17 novembre 2006
Dernière intervention
15 juillet 2014
- 20 déc. 2012 à 20:12
3
Merci
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.

Merci foliv57 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 87 internautes ce mois-ci

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.