Java多态
Java 多态
多态概述
- 多态、继承和封装是面向对象的三大特征
- 多态可以简单的理解为事物的多种形态,比如Stuent和Person,学生是人的一种,学生张三既是Student又是Person,这就构成了张三的两种形态。
此外,还有比如消息Message,QQ消息是Message,WeChat消息也是一种Message,一个QQ类的对象既是QQ消息又是消息。
多态案例
package polymorphism;
public class Mes_test {
public static void main(String[] args) {
Message Mes=new WeChat("微信");
Mes.rec(Mes);
Mes=new QQmes("QQ");
Mes.rec(Mes);
QQmes w=(QQmes)Mes;
w.rec(Mes);
}
}
public class Message {
protected String mes;
public String getMes() {
return mes;
}
public void rec(Message Mes) {
System.out.println("我接收到了一条"+getMes()+"消息");
}
}
public class WeChat extends Message {
WeChat(String m)
{
mes=m;
}
}
public class QQmes extends Message{
QQmes(String m)
{
mes=m;
}
}
运行结果:
多态转型
- 向上转型
父类类型 变量名=new 子类类型(); ——> Message Mes=new WeChat("微信"); - 向下转型
子类类型 变量名=(子类类型)父类类型的变量; ——> QQmes w=(QQmes)Mes;
注:只有父类对象本身就是用子类new出来的时候, 才可以在将来被强制转换为子类对象.