1
2

クラスの継承の関係について

Last updated at Posted at 2023-12-16

クラスの継承について誤っておぼえてたので間違いの履歴として残す。
スーパークラスを継承したら、スーパークラスの内容をメソッドなどを使かえるようになったBのクラスだと思っていた。

しかし、実際は

インスタンスがA型の場合はBのクラスであってもAのメソッドしか使えない。 A型で宣言したものは使用できるのがAクラスで定義されたメソッドのみに限定される。
class A{
    public void hello(){
        System.out.println("hello");
    }
}

class B extends A{
    public void sample(){
        System.out.println("sample");
    }
}

public class Main{
	public static void main(String[] args){
        A a = new B();
	    a.sample(); //Aクラスには存在しないメソッドなのでコンパイルエラー
    }
}
1
2
6

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2