子クラスの親の継承と呼び出しの構築方法

1635 ワード

1.子クラスが構築方法を定義していない場合、親クラスのパラメータのない構築方法を呼び出す.
2.子クラスが構築方法を定義した場合、パラメータなしでもパラメータ付きでも、子クラスのオブジェクトを作成するときは、まず親クラスのパラメータなしの構築方法を実行し、その後、独自の構築方法を実行します.
3.子クラスが親クラスのパラメータ付き構造メソッドを呼び出す場合、super(パラメータ)を使用して必要な親クラスの構造メソッドを呼び出し、その文を子クラス構造メソッドの最初の文として切り取ることができます.
4.あるコンストラクションメソッドがクラス内の他のコンストラクションメソッドを呼び出す場合、this(パラメータ)を使用して、その文をコンストラクションメソッドの最初の項目に配置することができる.
はっきり言って、原則は、まず父を呼び出すことです.△なければデフォルト調、あればある調、どうせ一つあればいい.
package test;
class Father{
String s = "Run constructor method of Father";
public Father(){
   System.out.println(s);
}
public Father(String str){
   s= str;
   System.out.println(s);
}
}
class Son extends Father{
String s= "Run constructor method of son";
public Son(){
   //        super(),        
   System.out.println(s);
}
public Son(String str){
   this();//    this()       Son(),  Son()     super() ,         。
   s = str;
   System.out.println(s);
}
public Son(String str1, String str2){
   super(str1+" "+str2);//                  super("---") ,               。
   s = str1;
   System.out.println(s);
}
}
public class MyClass9 {
public static void main(String[] args){
   Father obfather1 = new Father();
   Father obfather2 = new Father("Hello Father");
   Son obson1 = new Son();
   Son obson2 = new Son("hello son");
   Son obson3 = new Son("hello son","hello father");
  
}
}
===============
  :
Run constructor method of Father
Hello Father
Run constructor method of Father
Run constructor method of son
Run constructor method of Father
Run constructor method of son
hello son
hello son hello father
hello son