Java多态
2018-12-07 11:22
113 查看
Java多态
Java有两种多态
编译时多态性。
方法重载为编译多态,当方法名相同时,由编译器决定执行那个方法。
class Add{ int add(int num1,int num2){ return num1 + num2; } int add(int num1,int num2,int num3){ int num1 + num2 + num3; } }
该方法有编译器决定执行哪个add()方法,所以就是编译时的多态
重写方法的编译时多态。
当重写父类方法时,编译器决定执行子类的方法,也是编译时的多态。
public class Polymorphism{ public static void main(String[] args) { Person p = new Person(); //对象引用本类实例 Man m = new Man(); //编译时多态,执行Person类的toString() System.out.println(p.toString()); System.out.println(m.toString()); //编译时多态,执行Man类的toString() } } class Person{ public String toString() { String name = "Person"; return name; } } class Man extends Person{ public String toString(){ String name = "Man"; return name; } }
运行时多态性。
我们创建两个类:Bike和Splendar。 Splendar类扩展Bike类并覆盖其run()方法。通过父类(Bike)的引用变量调用run方法。 因为它引用子类对象,并且子类方法覆盖父类方法,子类方法在运行时被调用。
class Bike { void run() { System.out.println("running"); } } class Splender extends Bike { void run() { System.out.println("running safely with 60km"); } public static void main(String args[]) { Bike b = new Splender();// upcasting - 向上转换 b.run(); } }
输出结果
running safely with 60km.
相关文章推荐
- Java中抽象类实现多态
- Java 009 面向对象(多态、抽象类、接口)
- java基础2:抽象类、接口与多态
- JAVA面向对象初步知识总结:封装、继承、多态
- Java面向对象-多态
- java语言基础之多态
- [JAVA基础汇总]第十一章 继承和多态
- java之面向对象之多态
- 黑马程序员Java----多态
- Java学习之继承、接口、多态相关问题
- Java学习之多态
- Java中的多态
- [Java] 作业8(继承、多态)
- java-继承 多态 抽象
- java多态学习总结
- Java之面向对象的三大特性:封装,继承,多态讲解
- java多态的理解
- Java 练习(多态,instanceof)
- 黑马程序员--Java基础加强--03.代码简化 书写规律II_参数化数据类型【重载】【多态】【泛型】【泛型限定】【个人总结】
- java 中关于抽象类和接口的范例,通过多态中的向上转移实现