A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 磊弟哥哥 中级黑马   /  2014-9-13 15:46  /  2151 人查看  /  15 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/*
多态及其拓展性
多态:可以理解为事物存在的多种形态

动物:猫  狗
猫x=new 猫();
狗x=new 狗();


1.多态的体现
  父类的引用指向自己子类的对象
  父类引用接收自己子类的对象
2.多态的前提
  必须是类与类之间有关系,要么继承要么实现
  而且要存在覆盖
3.多态的好处
  提高了程序的拓展性
4.多态的弊端
  提高了拓展性但只能使用父类的引用访问父类成员
*/
class Demo
{
        public static void main(String []args)
        {
                //Animal a=new Cat();//类型提升,向上转型
                //a.eat();



                //Cat c=(Cat)a;//向下转型,将父类引用转化成子类类型
                //c.catchMouse();



                //Animal a=new Animal();
                //Cat c=(Cat)a;
                //这样的操作不允许,将父类对象转换成了子类类型
                //我们能转换的是父类引用指向自己子类对象时,该引用可以被提升,也可被强制转型
                //多态自始至终都是子类对象在做变化



                function(new Dog());
                function(new Cat());
        }
        public static void function(Animal a)
        {
                a.eat();
                if(a instanceof Cat)
                {
                        Cat c=(Cat)a;//先将动物向下转型为猫
                        c.catchMouse();//猫的实例调用猫的特有功能
                }
                else if(a instanceof Dog)
                {
                        Dog d=(Dog)a;
                        d.kanjia();
                }
        }
}
abstract class Animal
{
        public 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("拱地");
        }
}

评分

参与人数 1黑马币 +2 收起 理由
格子、 + 2

查看全部评分

15 个回复

倒序浏览
执梦而行 来自手机 中级黑马 2014-9-13 17:48:10
沙发
不错,支持下
回复 使用道具 举报
楼主加油!!!!
回复 使用道具 举报
happyto1021 来自手机 中级黑马 2014-9-14 00:52:07
板凳
加油楼主
回复 使用道具 举报
一步一步来,以后越老越长
回复 使用道具 举报
兄弟加油哦..... 看好你的拱地方法哦~!~:lol
回复 使用道具 举报
看好你哦
回复 使用道具 举报
加油啊楼主
回复 使用道具 举报
一起加油
回复 使用道具 举报
骚年,爆发吧
回复 使用道具 举报
加油,一起努力!!
回复 使用道具 举报
这是毕老师的多态
回复 使用道具 举报
楼主 加油 啊
回复 使用道具 举报
不错,加油。
回复 使用道具 举报
不错!支持!
回复 使用道具 举报
加油努力吧
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马