1.クラスの継承
class Animal{
String name; //定义name属性
//定义动物叫的方法
void shout(){
System.out.println("动物发出叫声");
}
}
//定义Dog类继承Animal类
class Dog extends Animal{
//Dog继承Animal,extends为继承的关键词
//定义一个打印name的方法
public void printName(){
System.out.println("name="+name);
}
}
//定义测试分
public class Demo01 {
public static void main(String[] args) {
Dog dog = new Dog();
dog.name = "沙皮狗";
dog.printName();
dog.shout();
}
}
注意:
- クラスは単一の継承のみをサポートし、複数の継承は許可されません。つまり、クラスは1つの直接の親クラスのみを持つことができます。
class A()
class B()
class C extends A,B() //C类不可以同时继承两个父类
- 複数のクラスが親クラスを継承できます。
- 複数レベルの継承が許可されます。
- サブクラスと親クラスは相対的な概念です。つまり、クラスは親クラスですが、別のクラスのサブクラスになることもできます。
2.親メソッドをオーバーライドします
class Animal{
String name; //定义name属性
//定义动物叫的方法
void shout(){
System.out.println("动物发出叫声");
}
}
//定义Dog类继承Animal类
class Dog extends Animal{
//Dog继承Animal,extends为继承的关键词
//定义一个打印name的方法
void shout(){
System.out.println("bark...bark...");
}
}
public class Demo01 {
public static void main(String[] args) {
Dog dog = new Dog(); //重写Dog类的是咧对象
dog.shout(); //调用dog重写的shout()方法
}
}
注意:
- サブクラスは親クラスのメソッドを自動的に継承しますが、継承されたメソッドをサブクラスで変更する必要がある場合があります。つまり、親クラスのメソッドが書き直されます。
- サブクラスでオーバーライドされるメソッドは、親クラスのオーバーライドされるメソッドと同じメソッド名、パラメーターリスト、および戻り値の型を持っている必要があります。
- サブクラスが親クラスのメソッドをオーバーライドする場合、親クラスのオーバーライドされたメソッドよりも制限の厳しいアクセス許可を使用することはできません。
3.スーパーキーワード
为了解决:当子类重写父类的方法后,子类对象将无法访问父类被重写的方法。
- superキーワードを使用して、親クラスのメンバー変数とメンバー変数を呼び出します
super。成员变量
super,成员方法([参数1,参数2...])