访问同名成员变量及成员方法
当父类对象或接口类对象时根据多态形式创建时
public abstract class Animal {
public int a=4;
public abstract void eat();
public abstract void feet();
public void method(){
System.out.println("特有方法Animal");
}
}
public class Cat extends Animal{
public int a=300;
public int b;
@Override
public void eat() {
System.out.println("吃草");
}
@Override
public void feet() {
System.out.println("四条腿");
}
pubic void method(){
System.out.println("特有方法Cat");
}
public void methodcat(){
System.out.println("Cat特有方法");
}
}
public class Test3 {
public static void main(String[] args) {
Animal b=new Cat();
System.out.println(b.a);
b.method();
}
}
- 利用多态形式创建了 Animal对象,此时调用同名成员变量a, 输出结果为 父类的成员变量 a
- 利用多态形式创建了 Animal对象,此时调用同名成员方法method, 调用的为子类的成员方法
注意:以多态形式创建的对象,无法访问其子类(或接口实现类)中的特有方法编译时就会报错