Javaオブジェクト指向クラス継承に関する注意事項

継承の概念:

Javaでは、既存のクラスに基づいて新しいクラスを構築できます。構築された新しいクラスはサブクラスまたは派生クラスと呼ばれ、既存のクラスは親クラスと呼ばれます。構築されたサブクラスには、親クラスのすべての継承可能なプロパティとメソッドが自動的に含まれます。継承に使用されるキーワードはextendです。

例:

//定义一个Animal类,作为父类
public class Animal {
    
    
    String type;//种类
    String name;//名称
    //定义一个动物跑的方法
    public void run(){
    
    
        System.out.println("动物跑......");
    }
}

//定义Cat类继承Animal类
public class Cat extends Animal {
    
    
    public void print(){
    
    
        System.out.println("品种:" + type + ",名称:" + name);
    }
}
//测试类
public class Example09 {
    
    
    public static void main(String[] args) {
    
    
        Cat cat = new Cat();//创建一个Cat类的实例
        cat.type = "金毛";//为品种属性赋值
        cat.name = "嘟嘟";//为名称赋值
        cat.print();//调用自身的方法
        cat.run();//调用继承父类的方法
    }
}

演算結果:
ここに画像の説明を挿入

Catクラスにはrun()メソッドはありませんが、親クラスから継承されたメソッドを呼び出すことができます。クラス継承には注意すべき点がいくつかあります。

  1. Javaクラスは単一の継承のみをサポートし、多重継承を許可しません。つまり、クラスは1つの直接の親クラスのみを継承できます。
    エラーの例:
class A{
    
    };
class B{
    
    };
class C extend A,B{
    
    }
  1. 複数のクラスが同じクラスを継承できます。
class A{
    
    };
//类B,C同时继承A类
class B extend A{
    
    };
class C extend A{
    
    };
  1. 多重継承が可能であり、親クラスは他の親クラスを継承できます。サブクラスと親クラスは相対的な概念です。
class A{
    
    };
class B extend A{
    
    };
class C extend B{
    
    };

親クラスのメソッドをオーバーライドします。

サブクラスは、親クラスのすべてのプロパティとメソッドを自動的に継承します。親クラスのメソッドをサブクラスで変更する必要がある場合、つまり、親クラスのメソッドがオーバーライドされる場合があります。サブクラスでオーバーライドされるメソッドは、親クラスのオーバーライドされるメソッドと同じ名前である必要があり、パラメータータイプとメソッドの戻り値は同じです。

例:

//定义一个Animal类,作为父类
public class Animal {
    
    
    String type;//种类
    String name;//名称
    //定义一个动物跑的方法
    public void run(){
    
    
        System.out.println("动物跑......");
    }
} 

//定义Cat类继承Animal类
public class Cat extends Animal {
    
    
    public void print(){
    
    
        System.out.println("品种:" + type + ",名称:" + name);
    }
    //重写父类的run方法
    public void run(){
    
    
        System.out.println("金毛在奔跑");
    }
}
//测试类
public class Example09 {
    
    
    public static void main(String[] args) {
    
    
        Cat cat = new Cat();
        cat.type = "金毛";
        cat.name = "嘟嘟";
        cat.print();
        cat.run();
    }
}

実行結果:
ここに画像の説明を挿入
結果は親クラスのrun()を書き換えたものであり、出力結果は書き換え後の結果です。
いい加減にして!

おすすめ

転載: blog.csdn.net/qq_42494654/article/details/109230444