java面向对象(多态-扩展性)
时间:2014-07-22 21:59 来源: 我爱IT技术网 作者:山风
java面向对象(多态-扩展性)
1)体现:父类引用指向(或接收)子类对象。
2)前提:类之间存在继承关系;存在覆盖
3)优点:提高代码扩展性
4)缺点:只可父类引用访问父类成员
5)应用
实例演示:
- //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- //动物体系
- abstract class Animal
- {
- abstract void eat();
- }
- class Cat extends Animal
- {
- public void eat()
- {
- System.out.println("吃鱼");
- }
- public void catchMouse()
- {
- System.out.println("抓老鼠");
- }
- }
- class Dog extends Animal
- {
- public void eat()
- {
- System.out.println("吃骨头");
- }
- public void kanJia()
- {
- System.out.println("看家");
- }
- }
- class Pig extends Animal
- {
- public void eat()
- {
- System.out.println("饲料");
- }
- public void gongDi()
- {
- System.out.println("拱地");
- }
- }
- //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- class Test
- {
- public static void main(String[] args)
- {
- //Cat c=new Cat();
- //c.eat();
- //Dog d=new Dog();
- //d.eat();
- //Cat c=new Cat();
- /*
- Cat c1=new Cat();
- function(c1); //提高代码复用性
- function(new Dog());
- function(new Pig());
- */
- //Animal c=new Cat(); //一个对象具备多种形态:既是猫,也是动物。
- //c.eat();
- function(new Cat());
- function(new Dog());
- function(new Pig());
- }
- //操作共性方法。
- public static void function(Animal a) //猫、狗、猪都是动物,都具备动物的共性方法。
- {
- a.eat();
- }
- /*
- public static void function(Cat c) //本类变量接收本类对象。相当于接收new Cat()
- {
- c.eat();
- }
- public static void function(Dog d) //重载,谁吃就把谁传进来。
- {
- d.eat();
- }
- public static void function(Pig p) //重载
- {
- p.eat();
- }
- //如果再添加动物,还得添加相应的function方法
- */
- }
本文来源 我爱IT技术网 http://www.52ij.com/jishu/5651.html 转载请保留链接。
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
