黑马程序员技术交流社区

标题: 多态问题 [打印本页]

作者: muma    时间: 2014-4-11 23:47
标题: 多态问题
如何理解:
编译时多态:方法重载
运行时多态:方法覆写

作者: muma    时间: 2014-4-11 23:48
希望大神能给出详细的代码证明
作者: 向日葵的曙光    时间: 2014-4-12 08:52
运行时多态:指一个对象可以具有多个类型,方法的覆盖

这样对于对象而言分为:

理解运行时多态:

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();

}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2