Maison >Java >javaDidacticiel >La méthode constructeur sous la relation d'héritage Java appelle la méthode d'implémentation

La méthode constructeur sous la relation d'héritage Java appelle la méthode d'implémentation

黄舟
黄舟original
2017-10-14 09:36:321372parcourir

Cet article présente principalement les informations pertinentes sur l'explication détaillée des appels de méthode de constructeur dans le cadre de la relation d'héritage Java. J'espère que cet article pourra aider tout le monde à comprendre et à maîtriser cette partie du contenu. Les amis dans le besoin pourront s'y référer

<.>

Explication détaillée des appels de constructeur sous relation d'héritage Java

Lors de la création d'un objet d'une classe en Java, si la classe a une classe parent, le constructeur de la classe parent est appelé en premier , puis appelé Constructeur de sous-classe. Si la classe parent ne définit pas de constructeur, le constructeur par défaut sans paramètres créé automatiquement par le compilateur est appelé. Si la classe parent définit un constructeur public sans paramètre, le constructeur sans paramètre sera automatiquement appelé avant d'appeler le constructeur de la classe enfant. Si la classe parent n'a qu'un constructeur paramétré et aucun constructeur sans paramètre, la sous-classe doit appeler explicitement super (liste de paramètres) dans le constructeur pour spécifier un constructeur paramétré. Si la classe parent définit un constructeur sans paramètre, mais que le constructeur sans paramètre est déclaré comme privé, la sous-classe doit également appeler explicitement super (liste de paramètres) dans le constructeur pour spécifier un constructeur paramétré. Si la classe parent n'a pas d'autre constructeur paramétré, la sous-classe ne peut pas être créée.

有父类

子类
Public无参构造方法 Private无参构造方法 有参构造方法
所有构造方法都会调用父类的默认构造方法
所有构造方法都会调用定义的无参构造方法
所有构造方法都必须指定调用某个有参的构造方法,或通过this调用某个其他的构造方法。
可以指定调用某个构造方法,如果没有指定,则调用无参构造方法。
子类无法构造(父类无法派生子类)
所有构造方法都必须指定调用某个有参的构造方法,或通过this调用某个其他的构造方法。
Par exemple :


class Parent {
  private String pString;
  Parent(){
    pString = "p1";
  }
}

class Child extends Parent {
  private String cString;
  Child() {
    cString = "c1";
  }
}
Lorsque l'objet Child est créé, le constructeur de la classe parent Parent sera d'abord appelé pour initialiser pString à "p1", puis appelez le constructeur de Child pour initialiser cString à "c1".


class Parent {
  private String pString;
  private Parent(){
    pString = "p1";
  }
  Parent(String s){
    pString = "p2";
  }
}

class Child extends Parent {
  private String cString;
  Child() {
    super("");
    cString = "c1";
  }
}
Puisque la classe parent définit un constructeur privé sans paramètre, vous devez explicitement spécifier d'appeler un constructeur paramétré dans la sous-classe.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn