私の理解では、Java のすべてのクラスは Object スーパークラスの子です。したがって、コンパイラが次のコードのエラーを表示するのはなぜですか。
public class ClassA {
public ClassA(){}
public String exampleMethod(String str){
//manipulate string
return str;
}
}
public class ClassB {
public ClassB(){}
public String exampleMethod(String str){
//manipulate string
return str;
}
}
public class Manager {
public Manager(){
execute(new ClassA());
execute(new ClassB());
}
public void execute(Object o){
o.exampleMethod("test");
}
}
ClassA が Object の子である場合、'o' 変数からメソッドを呼び出せないのはなぜですか? ClassA と ClassB をスーパークラスの下に置くことができることはわかっていますが、これが失敗する理由を知りたいです。