Java三大特征-------多态
2016-07-28 20:53
429 查看
Java三大特征——-多态
多态性是OOP编程中的一个重要特性,程序的最终状态只有执行过程中才会被执行而非编译期间就决定了,这提高了系统的灵活性和扩展性。 在java中如何实现多态,就是在编译的时候类型模糊一点,而在运行时类型具体到子类。多态实现是三个条件,要有继承,要有方法重写,父类的引用指向子类的对象。下面附上代码
public class TestPoly2 { public static void main(String[] args) { Food food = new Kfc(); Food food2 = new Lucai(); Food food3 = new MaoJiaCai(); cook(food); } //在编译该方法的时候,类型模糊一点,使用父类,在上面使用到的时候父类的引用指向子类的对象 public static void cook(Food food) { food.show(); } } class Food { public void show() { System.out.println("Food.show(我包括八大菜系)"); } } class Chuancai extends Food { @Override public void show() { System.out.println("鱼香肉丝"); } } class Kfc extends Food { @Override public void show() { System.out.println("全家桶"); } public void gogogo() { System.out.println("Kfc.gogogo(今天有优惠券)"); } } class Lucai extends Food { @Override public void show() { System.out.println("煎饼卷大葱"); } }
下面是一道练习题,练习一下,对继承的理解
public class TsetAbc { public static void main(String[] args) { /* a1里能够使用的函数只有show(D obj)和show(A obj) a2里能够使用的函数只有show(D obj)和B类里面重写的show() b里能够使用的函数只有show(D obj)和B类里面包含的两个方法 */ A a1 = new A(); A a2 = new B(); B b = new B(); C c = new C(); D d = new D(); System.out.println("1" + a1.show(b));//输出的是AA System.out.println("2" + a1.show(c));//输出的是AA System.out.println("3" + a1.show(d));//输出的是AD System.out.println("4" + a2.show(b));//输出的是BA System.out.println("5" + a2.show(c));//输出的是BA System.out.println("6" + a2.show(d));//输出的是AD System.out.println("7" + b.show(b));//输出的是BB System.out.println("8" + b.show(c));//输出的是BB System.out.println("9" + b.show(d));//输出的是AD } } class A{ public String show(D obj) { return ("A and D"); } public String show(A obj) { return ("A and A"); } } class B extends A { public String show(B obj) { return ("B and B"); } @Override public String show(A obj) { return ("B and A"); } } class C extends B { } class D extends B { }
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序