多态性体现在方法的重载与覆写、对象的多态性。
方法重载:方法名相同,参数个数或类型不同
方法覆写:子类实现父类同样的方法
对象的多态性:
1、向上转换:将子类的对象赋值给父类的引用,如下所示:
class Father {
public void introduce() {System.out.println("This is Father");}
}
class Son extends Father{
public void introduce() {System.out.println("This is son");}
public void playGame() {System.out.println("playGame ...");}
}
Son son = new Son();
Father f = son;
使用时,有如下两条语法:
(1)一个引用能调用哪些成员,取决于引用的类型:在上面的例子中,f.playGame()会报错
(2)一个引用调用到哪些成员,取决于引用所指向的对象:在上面的例子中,f.introduce()会输出This is Son
2、向下转换:在进行对象的向下转换前,必须首先发生对象的向上转换
Father f = new Son();
Son son = (Son)f; //强制转换必须要有,否则会报错