OOP三大特性之多态

1、多态是什么?

多态是同一个行为具有多个不同表现形式或形态的能力。

2、Java实现多态必要条件

Java实现多态有三个必要条件:继承、重写、向上转型。

  • 继承:在多态中必须存在有继承关系的子类和父类。
  • 重写:子类对父类中某些方法进行重新定义,在调用这些方法时就会调用子类的方法。
  • 向上转型:在多态中需要将子类的引用赋给父类对象,只有这样该引用才能够具备技能调用父类的方法和子类的方法。

3、实例

package com.icheny.TestDuoTai;

public class People
{
    public void eat()
    {
        System.out.println("people eat...");
    }

    public void run()
    {
        System.out.println("people run...");
    }
}

class Student extends People
{
    public void sleep()
    {
        System.out.println("student sleep...");
    }
    public void run()
    {
        System.out.println("student run...");
    }
}

运行测试1:

package com.icheny.TestDuoTai;

public class Test
{
    public static void main(String[] args)
    {
        //父类People中的方法:eat() run()
        People p = new People();
        p.eat();
        p.run();
    }
}

输出:
在这里插入图片描述
运行测试2:

package com.icheny.TestDuoTai;

public class Test
{
    public static void main(String[] args)
    {
        //子类Student中的方法:sleep() run()
        Student s = new Student();
        s.eat();
        s.sleep();
        s.run();
    }
}

输出:
在这里插入图片描述
运行测试3:

package com.icheny.TestDuoTai;

public class Test
{
    public static void main(String[] args)
    {
        People p = new Student();
        p.eat();
        p.run();
    }
}

输出:
在这里插入图片描述
        通过以上三个测试用例可以观察到,指向子类的父类引用由于向上转型了,它只能访问父类中拥有的方法和属性,而对于子类中存在而父类中不存在的方法,该引用是不能使用的。若子类重写了父类中的某些方法,在调用该些方法的时候,必定是使用子类中定义的这些方法。

4、总结

        子类Student继承父类People,我们可以编写一个指向子类的父类类型引用,该引用既可以处理父类People对象,也可以处理子类Student对象,当相同的消息发送给子类或者父类对象时,该对象就会根据自己所属的引用而执行不同的行为,这就是多态。即多态性就是相同的消息使得不同的类做出不同的响应。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值