🐸[JAVA]継承(2)🐸
1979 ワード
継承と作成者
ジェネレータは、継承中に作成されるのではなく、サブクラスオブジェクトの作成時に親クラスのパラメータレスジェネレータを自動的に呼び出します.
親を継承する子クラスを作成すると、親のパラメータレスジェネレータが自動的に呼び出されるため、継承した親にパラメータレスジェネレータがない場合はエラーが発生します.
特別な作成者がいない場合は、デフォルトの作成者である作成者(){}を実行します.
親クラスのパラメータレスジェネレータを自動的に実行します.パラメータなしジェネレータがない場合はエラーが発生します.
メソッドの変更(子クラスの作成者にパラメータ値がないが、親クラスにパラメータ値がある場合)
(1)親にコンストラクション関数(){}を追加する.
(2)サブクラスでsuper()メソッド呼び出しを使用する
class Greeting {
public String name = "김유진";
public int age = 18;
public void sayHello() {
System.out.println("씨 안녕하세요.");
}
}
class EngHello extends Greeting{
public String name = "Mr.hee";
public int age = 18;
public void sayHello() {
System.out.println(age + "살의 "+name+" Nice to meet you");
}
public void test() {
System.out.print(super.age + "살의 "+ super.name);
super.sayHello();
}
public static void main(String args[]) {
EngHello eng = new EngHello();
eng.sayHello();
eng.test();
}
}
superキーワードとsuper()メソッド
継承関係のクラスで、スーパーキーsuper()メソッドを使用して親クラスのメンバー変数またはジェネレータを呼び出します.
スーパーキー
子クラスで親クラスのメンバー変数またはメソッドを明示的に呼び出す場合に使用します.
形式
(1) super. 親のメンバー変数
(2) super. 親のメソッド名
super()メソッド
親クラスを明示的に呼び出す作成者は、まず子クラスの作成者から呼び出さなければなりません.
形式
(1) super( )
(2)super(パラメータ...)
class Grandfather {
private String name;
private int age;
public Grandfather(String name,int age) {
this.name = name;
this.age = age;
System.out.println("Grandfather 생성자"+" "+this.name +" "+this.age+"살이다.");
}
}
class Myclass extends Grandfather{
public Myclass(String str,int age) {
super(str, age);
System.out.println("MyClass 생성자");
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Myclass s = new Myclass("김유진",18);
}
}
Reference
この問題について(🐸[JAVA]継承(2)🐸), 我々は、より多くの情報をここで見つけました https://velog.io/@youjin0411/JAVA-상속2テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol