首页 > 代码库 > Java简明教程 10.多态(Polymorphism)
Java简明教程 10.多态(Polymorphism)
什么是多态(Polymorphism)?
多态就是: 父类的引用既可以来自父类, 也可以来自子类. 也就是, 允许子类的引用赋值给父类的引用
这就正如, 对于小牛, 它既是小牛, 也是动物; 对于汽车, 它既是汽车, 又是交通工具;对于手机, 它既是手机,又是通讯设备...这些的道理是一样的
PolyDemo1.java
1 /* 什么是多态? 2 * 输出结果: 牛在吃. 3 */ 4 public class PolyDemo1 { 5 public static void main(String[] args) { 6 Animal a1 = new Cow(); 7 a1.eat(); 8 /*a1.i = 1; error 9 *出错信息: PolyDemo1.java:6: 错误: 找不到符号 10 * a1.i = 1; 11 * ^ 12 * 符号: 变量 i 13 * 位置: 类型为Animal的变量 a1 14 * 1 个错误 15 *总结: 来自子类引用的父类引用, 只能访问子类从父类继承过来的属性(成员变量, 成员方法) 16 * 如果要访问子类特有的属性, 可以考虑强制转换. 17 */ 18 ((Cow)a1).i = 1; //ok 19 } 20 } 21 22 class Animal { 23 public void eat() { 24 System.out.println("动物在吃."); 25 } 26 } 27 28 29 class Cow extends Animal { 30 public int i; 31 @Override 32 public void eat() { 33 System.out.println("牛在吃."); 34 } 35 }
总结
多态就是: 一个父类的引用既可以指向父类对象, 也可以指向子类对象.
它可以根据时刻指向的不同, 自动调用不同对象的方法.
注意:
1. 通过父类的引用只能访问子类从父类继承过来的成员
2. 当父类的引用指向的其实就是一个子类对象的时候,, 才可以把父类的引用强制转换为子类的引用
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。