`
包涵
  • 浏览: 38836 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

多态的分类

    博客分类:
  • OOP
阅读更多
多态分两种:

1编译时多态:编译时动态重载;

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

}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics