Java 基础

来源:互联网 发布:网络伤感情歌2016 编辑:程序博客网 时间:2024/06/05 03:28
/*1多态的体现父类的引用也可以接受自己的子类2多态的前提 必须是类与类之间有联系,要么是继承要么是实现。 通常要覆盖3多态的好处 很好的提高代码的扩展性4多态的应用5多态的弊端提高了扩展性,但是只能使用父类的引用访问父类中的成员。6.多态的*/abstract class Animal{int num=9;  abstract void eat();}class Cat extends Animal{int num=112;public void eat(){ System.out.println("eat fish");}public void catchfish(){ System.out.println("catch fish");}}class Dog extends Animal{public void eat(){System.out.println("eat Bone");}public void lookHome(){System.out.println("look home");}}class Pig extends Animal{public void eat(){System.out.println("eat food");}public void sleep(){System.out.println("can sleep");}}class Duotaidemo {public static void main(String[] args) {//Cat c=new Cat();//c.eat();function(new Dog());function(new Cat());          Animal a=new Cat(); a.eat(); /* 在多态中非静态成员函数的特点: 在编译时期:参阅引用型变量(a)所属的类中是否有调用的方法,如果有,则编译通过,否则失败 在运行时期:参阅对象所属的类中调用的方法(new Cat()) 简单总结:编译看左边,运行看右边。           注意:1.。在多态中成员变量的特点:  无论编译和运行,都参考左边(引用类型所属的类)       2.。在多态中static成员函数的特点:无论编译和运行。都参考左边(引用类型所属的类) */}public static void function(Animal a){ a.eat(); if(a instanceof Cat){             Cat c=(Cat)a;c.catchfish();    }else if(a instanceof Dog){ Dog d=(Dog)a; d.lookHome();}else {Pig p=(Pig)a;p.sleep();}}}
1 0
原创粉丝点击