Java学习笔记——多态
2018-02-06 00:15
204 查看
2018.2.5
Java多态的学习
1.多态存在的前提:存在继承关系;子类重写父类的方法(@Override);父类的引用指向子类。
2.例如,父类Animal存在一个方法eat(),子类Dog继承自父类,重写了父类的eat()方法。
测试类:
结果:
Dog eating...
10
Dog barking...
10
可以看出,a是一个指向子类Dog的父类引用,且a调用eat()时是调用子类重写的实现,而不是父类的实现。
补充:https://www.cnblogs.com/liujinhong/p/6003144.html
Java多态的学习
1.多态存在的前提:存在继承关系;子类重写父类的方法(@Override);父类的引用指向子类。
2.例如,父类Animal存在一个方法eat(),子类Dog继承自父类,重写了父类的eat()方法。
public class Animal { public int age = 100; public void eat(){ System.out.println("Animal eating..."); } } class Dog extends Animal{ public int age = 10; @Override public void eat(){ System.out.println("Dog eating..."); } public void bark(){ System.out.println("Dog barking..."); } }
测试类:
//父类引用子类对象,只对子类的重写方法有效 //若父类中没有bark()方法,则父类引用子类对象报错 //弊端:父类引用子类的对象,不能使用子类对象的特有数据/功能 //解决:强制类型转换 public class MainDemo { public static void main(String[] args){ Animal a = new Dog(); Dog d ; //强制转换a的类型为Dog d = (Dog)a; a.eat(); System.out.println(d.age); //a.bark(); d.bark(); System.out.println(d.age); } }
结果:
Dog eating...
10
Dog barking...
10
可以看出,a是一个指向子类Dog的父类引用,且a调用eat()时是调用子类重写的实现,而不是父类的实现。
补充:https://www.cnblogs.com/liujinhong/p/6003144.html
相关文章推荐
- Java 编程思想(第四版)学习笔记(8)多态
- objective-c学习笔记第六章《objective-c 多态,动态类型,动态绑定与java中的区别》
- Java学习笔记——类与对象(封装、继承与多态)
- Java学习笔记之六——Java类的继承和多态(2)
- 【Java学习笔记】基础知识学习10【继承与多态】
- java核心技术学习笔记7---继承与多态
- 多态Object类toString方法学习笔记ObjectDemo.java
- Java学习笔记——多态
- java 从零开始,学习笔记之基础入门<抽象类_接口_多态>(十三)
- java学习笔记---构造器的多态和调用顺序
- 【学习笔记】JAva编程思想之多态
- 《Thinking in Java》 学习笔记---多态?晚绑定。
- 黑马程序员--Java学习笔记之面向对象思想(多态、内部类、匿名内部类、异常类)
- java学习笔记---浅谈java多态的注意要点
- Java学习笔记之六——Java类的继承和多态(1)
- JAVA学习笔记(五)继承时的构造方法、多态、接口、汉诺塔
- Java_SE_学习笔记_①——Java多态——向上转型的意义
- Java菜鸟学习笔记--面向对象篇(十八):对象转型&多态
- 黑马程序员:java学习笔记-接口和多态
- Java学习笔记---类的继承与多态特性