我知道,无论实际对象是什么,引用变量指的是什么,我可以在引用上调用的方法取决于变量的声明类型(在代码的第 15 行)。我想知道为什么.为什么类用户不能使用Shape类型的引用变量s来调用它的子类方法drawCircle()?
public class Shape{
public void displayShape(){
System.out.println("shape displayed");
}
public class Circle extends Shape{
public void drawCircle(){
System.out.println("circle drawn");
}
public class Test{
p.s.v.main(String[] a){
Circle c=new Circle();
Shape s=new Shape();
display(c);
display(s);
public void display(Shape myShape){
myShape.displayShape();//possible for ref variable c and s
myShape.drawCircle();//not possible for reference var s
}
}
}
你能给我解释一下在对象级别发生了什么吗?我是java新手。