面向对象之------多态

多态性,是面向对象中最重要的概念,在java中有两种体现:
1.方法的重载(overload)和重写(overwrite).

2.对象的多态性------可以直接应用在抽象类和接口上。

java引用变量有两个类型:编译时类型和 运行时类型。编译时类型由声明该变量时使用的类型决定,运行时类型由实际赋给该变量的对象决定。

若编译时类型和运行时类型不一致,就会出现多态(polymorphism)

多态性指的是什么?可以理解为一个事物的多种表现形态。

一  1)方法的重载与重写 2)子类对象的多态性

二 子类对象的多态性使用的前提:1)要有类的继承 2)要有子类对父类方法的重写。

三 程序运行分为编译状态和运行状态

      对于多态性来说,编译时,“看左边”,将此引用变量理解为父类的类型。

     运行时,“看右边”,关注于真正对象的实体:子类的对象。那么执行的方法就是子类重写的。

//子类对象的多态性:父类的引用指向子类对象

Person p1 =new Man();//向上转型

//虚拟方法调用:通过父类的引用指向子类的对象实体,当调用方法时,实际执行的是子类重写父类的方法。

p1.eat();

p1.walk();

动态类型绑定

你可能感兴趣的:(面向对象之------多态)