您的位置:首页 > 编程语言 > Java开发

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 多态 继承