向上转型:对象既可以作为它自己本身的类型使用,也可以作为基类型使用。把某个对象的引用视为对其基类型的引用的做法就叫做向上转型。
方法绑定:将一个方法调用同一个方法主体关联起来。若在程序执行前进行绑定,叫做前期绑定。若在运行时根据对象的类型进行绑定叫做后期绑定(动态绑定或运行期绑定)。Java中除了static方法和final方法(private方法属于final方法)之外,其他所有的方法都是后期绑定。
成员变量是在对象初始化(new)时由编译器分配在堆内存中的,静态方法是与类相关联的,它们都不与单个对象相关联。因此都不具有多态性。
多态3条件:1.继承;2.重写;3.父类引用指向子类对象。
例子:
/**
* Title:Cycle.java
* Description:演示多态
*
* @author winwin
* @version 1.0
* @since 2009-4-9上午10:16:48
*/
public class Cycle {
public void ride(){
System.out.println("ride");
}
}
public class Unicycle extends Cycle {
@Override
public void ride(){
System.out.println("ride unicycle!");
}
}
public class Bicycle extends Cycle {
@Override
public void ride(){
System.out.println("ride bicycle!");
}
}
public class Tricycle extends Cycle {
@Override
public void ride(){
System.out.println("ride tricycle!");
}
}
public class TestRide {
public void rideCycle(Cycle cycle){
cycle.ride();
}
public static void main(String[] args) {
Unicycle uc = new Unicycle();
Bicycle bc = new Bicycle();
Tricycle tc = new Tricycle();
TestRide tr = new TestRide();
//父类引用指向子类对象,rideCycle的参数为父类引用,uc,bc,tc为子类对象。
tr.rideCycle(uc);
tr.rideCycle(bc);
tr.rideCycle(tc);
}
}
文章来源:
http://java999.blog.51cto.com/259217/148148