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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© muma 中级黑马   /  2014-4-11 23:47  /  765 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

如何理解:
编译时多态:方法重载
运行时多态:方法覆写

2 个回复

正序浏览
运行时多态:指一个对象可以具有多个类型,方法的覆盖

这样对于对象而言分为:

理解运行时多态:

Car c = new Bus();

Car编译时类型 ? 编译时检查变量类型是否存在,是否有调用的方法

Bus运行时类型 ? 实际运行是访问heep中的对象,调用实际的方法。

运行时多态是由运行时类型决定的

编译时多态是由编译时类型决定的

猫,小鸟,狗 都是动物,都可以安上动物的标签。

Interface Animal{}

Class Car implements Animal{}

Class Bird implements Animal{}

Class Dog implements Animal{}

方法中

Animal a = new Car();

Animal b = new Bird();

Animal c = new Dog();

*方法重载看的是参数的编译时类型

public class Animal{

public static void main(String[] args){

}

}

(1) 是覆盖吗?不能多态了

abstract class MyClass{

priavate void m();

}

class Sub extends MyClass(){

public void m();

}

(2) ? 错误的修饰符组合

abstract class MyClass{

priavate abstract void m();

}

class Sub extends MyClass(){

public void m();

}

(3)? 5.0 新? 非覆盖

abstract class MyClass{

private final void m();

}

class Sub extends MyClass(){

public void m();

}
回复 使用道具 举报
希望大神能给出详细的代码证明
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马