package test;
public class javatest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Parent parent=new Child();
parent.parent1();
System.out.println(parent.a);
Child child=(Child)parent;
child.child1();
}
}
class Parent{
int a=10;
Parent(){
}
public void parent1(){
System.out.println("parent1");
}
public void parent2(){
System.out.println("parent2");
}
}
class Child extends Parent{
int a=20;
int b=30;
public void parent1(){
System.out.println("child1");
}
public void child1(){
System.out.println("child2");
}
}
父类对象引用子类实例是只能引用子类中与父类同名的那些成员,若变量出现隐藏则调用的是父类的变量,若方法出现覆盖则调用的是子类的方法,子类单独的方法则不可见。
但是强制类型转换后则子类的方法和变量则可见。
接口的多态性:
MyInterface obj=new A();
Obj.show();
假设MyInterface是个接口,A是实现接口的类,则调用的是类A的方法,这就是接口的多态性。