Héritage des classes internes Java : Car lorsque la classe exportée est instanciée, il n'y a pas d'objet de classe périphérique pour que l'instance de la classe exportée puisse s'y connecter. Nous devons donc créer une classe externe et utiliser une syntaxe spécifique pour indiquer la relation entre la classe interne et la classe externe.
Héritage des classes internes Java :
Le constructeur d'une classe interne Java doit être connecté à un pointeur vers sa référence d'objet de classe englobante (pour construire une classe interne, vous devez lui donner une référence à l'objet de classe externe, et la classe interne dépend de l'objet de classe externe), donc lors de l'héritage de la classe interne, vous devez ajouter manuellement un appel au constructeur de la classe de base dans le constructeur de la classe dérivée.
Car, lorsque la classe exportée est instanciée, il n'y a pas d'objet de classe périphérique pour que l'instance de la classe exportée puisse s'y connecter.
Nous devons donc créer une classe externe, puis utiliser une syntaxe spécifique pour indiquer la relation entre la classe interne et la classe externe.
Dans l'exemple suivant, vous devez donner à la classe dérivée InheritInner une référence de la classe externe de la classe interne. Pour l'héritage ordinaire, il vous suffit d'ajouter super();
au constructeur de classe dérivé, tandis que la classe interne a besoin de la référence d'objet de classe externe .super()
class WithInner{ class Inner{} } public class InheritInner extends WithInner.Inner{ InheritInner(WithInner wi){ wi.super(); //wi的父类是object } public static void main(String[] args){ WithInner wi = new WithInner(); InheritInner ii = new InheritInner(wi); } }
et plus encore, lorsque la classe interne héritée n'a que non -constructeur par défaut Que dois-je faire lorsque l'appareil est endommagé ?
class WithInner{ class Inner{ public Inner(int i){ System.out.println(i); } } } public class InheritInner extends WithInner.Inner{ InheritInner(WithInner wi){ int i=0; wi.super(i);//如代码所示,当被继承的构造器需要参数时,应把参数传递给这个super函数 } public static void main(String[] args){ WithInner wi = new WithInner(); InheritInner ii = new InheritInner(wi); } }
Recommandations d'apprentissage associées : Tutoriel de base Java
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!