java中的多态

普鲁登斯 2020-02-16 07:14:24
多态发生在继承关系中 你可以把多态中的父类称为对象的属性设计图 以下所有列子 Cat extends Animal Dog extends Animal 向上转型 Animal animal=new Cat(); //把子类的对象赋给父类的引用(式子从后往前理解) 向下转型(就是向上转型的翻过来) animal //这是上面的那个子类对象的父类引用 Cat cat=(Cat)Animal(); //把子类对象的父类引用赋给子类(还需要把子类对象的父类引用强转为要赋值的那个子类的类,不然报错)称之为向下转型 看到这里有人就会问, 转来转去有什么用 还不如一个类一个对象的Cat cat=new Cat();好 下面我给你讲这种多态的做法有什么用 其作用主要为: 实现对象批量创建时,对象们对父类属性的公用化和对子类方法使用的独特化 实现对象批量创建时,对象们(利用多态创建出来的多个对象)对父类属性(一般情况下我们共用的这个父类属性没有赋值的)的公用化和对子类方法使用的独特化 看不懂语言解释就看例子 例子: 设定:下面的Cat Dog都是继承于Animal的 class Animal{ String name; } class Cat{ public void eat(){ Syso…("我吃鱼"); } } class Dog{ public void eat(){ Syso…("我吃s"); } } main主方法中: Animal animal1=new Dog(); Syso…(animal1.name="我是狗"); animal1.eat(); animal animal2=new Cat(); Syso…(animal2.name="我是猫"); animal2.eat(); 输出: 我是狗 我吃s 我是猫 我吃鱼 这就是多态 狗和猫公用了父类animal中的String name这个name属性; 还都使用了自己独特的方法eat
...全文
23 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧