<pre name="code" class="java">class BaseClass
{
public int book=6;public void base()
{
System.out.println("父类的普通方法");
}
public void test()
{System.out.println("父类被覆盖的方法");
}
}
public class SubClass extends BaseClass
{
public String book = "轻量级JAVA企业拥有实战";
public void test()
{
System.out.println("子类的覆盖父类的方法");
}
public void sub()
{
System.out.println("子类的普通放法");
}
public static void main(String [] args)
{
BaseClass bc = new BaseClass();
System.out.println(bc.book);
bc.base();
bc.test();
BaseClass ploBaseClass =new SubClass();
System.out.println(ploBaseClass.book);
ploBaseClass.base();
ploBaseClass.test();
//ploBaseClass.sub();
}
}
1.上述中ploBaseClass.base()表现的是从父类继承过来的方法,换句话说表现的是子类的状态;2.当子类跟父类有相同的方法时表现的也为子类的方法;3.对于属性,java不会表现多态的性质;4.最后一句代码错误表明:引用变量只能调用父类的方法,不能调用子类的方法,但是最终执行的却是子类里面从父类继承过来(或者重写)的方法