1. 継承の概念: 継承はクラス間の関係であり、「である」関係です
親クラス --- >基本クラスサブクラス--->派生クラス
注: JAVA の継承は単一継承です
2. 継承の利点: コードを実現するために、サブクラスは親クラスのすべての属性とメソッドを持ちます (プライベートな変更は無効です)。再利用
3. 文法規則: クラスのサブクラスが親クラスを拡張する
例:
package example; public class Animal { public int age; public String name; public void eat() { System.out.println("动物不吃东西就会饿"); } } package example; public class Dog extends Animal{ }
4. メソッドのオーバーライド: サブクラスが親クラスのメソッドを継承しない場合、親クラスから継承したメソッドをオーバーライドできます。メソッドを呼び出すと、サブクラスのメソッドが限定的に呼び出されます
文法規則: 戻り値の型、メソッド名、パラメーターの型、および数値は、親クラスから継承したものと同じです これをメソッド書き換えといいます
例: Dogクラスにeatメソッドを追加する
package example; public class Dog extends Animal{ public void eat() { System.out.println("年龄:"+age+"\n狗狗不吃东西就会饿"); } }
package example; public class Animal { public int age; public String name; public void eat() { System.out.println("年龄:"+age+"\n动物不吃东西就会饿"); } public Animal() { System.out.println("这是执行了Animal类"); } } package example; public class Dog extends Animal{ public Dog() { System.out.println("这是执行了Dog类"); } }
package example; public class Animal { public int age = 10; public String name; public void eat() { System.out.println("年龄:"+age+"\n动物不吃东西就会饿"); } public Animal() { System.out.println("这是执行了Animal类"); age = 20; } }
饰 PS: 変更クラスの場合、このクラスは継承できません。変更メソッドが変更された場合、メソッドはカバーされません (書き換えられます)。変更属性が Formula 初期化の場合 (クラスの属性属性には値が必要です)、コンストラクターで値を代入します (ただし、選択できるのは 1 つだけです)
変数を変更する場合、変数の値は代入することしかできません1 回、つまり定数になります
7. super キーワードの使用: オブジェクト内で使用され、親クラスのオブジェクトを表すことができます
1) 親クラスの属性にアクセスします: super.age
例:
package example;
public class Dog extends Animal{
public Dog() {
System.out.println("这是执行了Dog类");
}
public void method() {
System.out.println(super.age);
super.eat();
}
}
3) super
のアプリケーションの親クラスは、サブクラスの構築メソッド中に呼び出す必要があります。public class Dog extends Animal{
public Dog() {
super(); //这里是显示的 写与不写是一样的 但写的话必须放在第一行
System.out.println("这是执行了Dog类");
}
public void method() {
System.out.println(super.age);
super.eat();
}
}
サブクラスのコンストラクターが親クラスのコンストラクターを明示的に呼び出さない場合、システムはデフォルトで親クラスのパラメーターなしのコンストラクターを呼び出します
サブクラスのコンストラクターが明示的に呼び出された場合、 Zierlei コンストラクターの最初の行にある必要があります。サブクラスのコンストラクターが親クラスのコンストラクターを明示的に呼び出しておらず、親クラスにパラメーターのないコンストラクターがない場合、コンパイル エラーが発生します
public class Animal {
public int age = 10;
public String name;
public void eat() {
System.out.println("年龄:"+age+"\n动物不吃东西就会饿");
}
/* public Animal() {
System.out.println("执行Animal类构造方法");
}*/
public Animal(int age) {
this.age = age ;
}
}
8 オブジェクト クラス:すべてのクラス クラスの親クラス。クラスが別のクラスを継承することを明確に示すために extends キーワードを使用しない場合、このクラスはデフォルトで Object クラスを継承します。
Object クラスのメソッドは、すべてのサブクラスに適しています。
1) toString() メソッド
Object クラスで toString() メソッドを定義したときに返されるオブジェクト (オブジェクトのアドレス文字列) のハッシュ コード
可以通过重写toString()方法表示出对象的属性。
2)equals()方法
比较的是对象的引用是否指向同一块内存地址。
一般情况下比较两个对象时比较他的值是否一致,所以要进行重写。
此时若同时给age赋相同值
由此可见还是输出false 在这我们建立equals方法
创建equals方法: Source --> Generate hashCode() and equals()...
@Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) //判断两个对象的类型是否相同 return false; Dog other = (Dog) obj; if (age != other.age) return false; return true; }
此时结果就为true了
####END####
相关文章:
以上がJAVA入門システムチュートリアル(8) オブジェクト指向(継承)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。