Java 多态
来源:互联网 发布:wp 利用 知乎 编辑:程序博客网 时间:2024/06/10 02:51
/*class 动物{}class 猫 extends 动物{}class 狗 extends 动物{ }猫 x =new 猫();动物 x= new 猫();// 一个对象两个形态猫这类事物既具备猫的形态 又具备作着动物的形态这就是对的多态性 简单的说 就是一个对象对应着不同的类型 父类或者接口的引用指向其子类的对象多态的好处:提高了代码的扩展性 前期定义的代码可以使用后后期的内容多态的弊端:前期定义的内容不能调用(使用)后期子类的特有内容多态的前提:必须有关系 继承 实现必须有覆盖*/ abstract class Animals{ abstract void eat(); } class Dog extends Animals{ void eat(){ System.out.println("啃骨头"); } void lookHome(){ System.out.println("看家"); }} class Cat extends Animals{ void eat(){ System.out.println("吃鱼"); } void CatchMouse(){ System.out.println("抓老鼠"); } } class DuoTaiDemo{ public static void main(String[] args) {Animals a=new Cat();//自动类型提升,猫对象提升为了动物类型 但(猫)特有功能无法访问//作用就是限制特有功能的访问(只需要动物的功能 不需要特有的猫狗类型)//专业术语 : 向上转型。将子类隐藏就不能使用子类的特有方法a.eat(); //如果还想用具体动物猫的特有功能//可以将该对象向下转型Cat c=(Cat)a;//向下转型是为了使用子类中的特有方法c.eat();c.CatchMouse(); //注意对于转型 自始至终都是子类对象在做着类型变化 /*Cat c =new Cat(); //c.eat(); Dog d=new Dog(); method(c); method(d);*/ } public static void method(Animals c){ c.eat(); if(a instanceof Cat){//instanceof:用于判断对象的具体类型 只能用于引用数据类型的判断 //通常在向下转型前用于健壮性的判断增强代码的健壮性 Cat c =(Cat)a; c.CatchMouse() } else if(a instanceof Dog){ Dog d =(Dog)a; d.lookHome(); } } }
阅读全文
0 0
- Java学习 java -- 多态
- java多态
- java多态
- java多态
- java多态
- Java多态
- java多态
- JAVA@多态
- Java多态
- java 多态
- Java多态
- java多态
- [Java] 多态
- JAVA多态
- Java多态
- java多态
- java 多态
- java多态
- 解决javascript向后台传输汉字乱码
- shell中的clear命令实现
- [USACO GOLD] 选做
- CF#420 Div.2 B. Okabe and Banana Trees(数学)
- ng个人学习小结
- Java 多态
- ACM Dijkstra 最短路
- View、Window、WindowManager与WMS之间的关系
- 实习笔记之nexus maven私服搭建
- DOM中获取元素的方法
- java-文件操作RandomAccessFile
- Organopolysilazane
- 笨方法学Python 习题 38: 列表的操作
- 高通滤波与低通滤波的简单理解