多态定义博客

多态
要点提示:多态意味着父类型的变量可以引用子类型的对象。
多态是指在面向对象程序设计中,同一个类型的对象,对同一个消息会有不同的响应,即具有多种形态。多态的实现方式有通过继承和重载实现的静态多态(polymorphism),以及通过虚函数实现的动态多态(dynamic polymorphism)。静态多态是指在编译期确定的多态形态,而动态多态则是在运行期确定的多态形态。
动态多态主要是通过虚函数(virtual function)来实现的。在基类中声明虚函数,在派生类中可以重写该函数,当通过基类的指针或者引用调用该函数时,实际执行的是派生类中的实现。这样,即使在编码时只有基类的指针或引用,运行期仍然可以根据实际指向的派生类对象的类型来动态地确定应该调用哪个类的实现。动态多态使得程序更加灵活和扩展性更强。
多态存在的三个必要条件:1,要有继承;2,要有重写;3,父类引用指向子类对象。
package A;
public class PolymorphismDemo {
    public static void main(String[] args) {
                displayObject(new Circle(1,"red",false));
                displayObject(new Rectangle(1,1,"black",true));
                }
                public static void displayObject(GeometricObject object) {
                    System.out.println("Created on "+ object.getDateCreated() + ".Color is " + object.getColor());
    }
}
方法displayObject具有GeometricObject类型的参数。可以通过传递任何一个GeometricObject的实例来调用displayObject。使用父类对象的地方都可以使用子类的对象。这就是通常所说的多态。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值