Java多态性

多态

1.理解多态性:可以理解为一个事物的多种形态。

2.何为多态性:

对象的多态性:父类的引用指向子类的对象(或子类的对象赋给父类的引用)

3.多态的使用:虚拟方法调用

有了对象的多态性以后,我们在编译期,只能调用父类中声明的方法,但在运行期,我们实际执行的是子类重写父类的方法。

★总结:编译,看左边;运行,看右边。Person person = new Man( );

“看左边”:看的是父类的引用(父类中不具备子类特有的方法);
“看右边”:看的是子类的对象(实际运行的是子类重写父类的方法)。

4.多态性的使用前提:

①类的继承关系;②有方法的重写。

5.对象的多态性,只适用于方法,不适用于属性。

下面通过程序演示多态性的思想,其核心思想就是上面提到的(★总结)部分:
package com.java.oop3;
/**
 * @ClassName Person
 * @Description:    人类
 * @Author Seven
 * @Date 2021/7/30 9:54
 * @Version 1.0
 **/
public class Person {
    int age;
    int weight;

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

    public void eat(){
        System.out.println("吃饭");
    }

    public void isSmoking(){
        System.out.println("抽烟");
    }
}
package com.java.oop3;
/**
 * @ClassName Man
 * @Description:    男人类
 * @Author Seven
 * @Date 2021/7/30 9:54
 * @Version 1.0
 **/
public class Man extends Person{
    @Override
    public void eat() {
        System.out.println("男人吃得多");
    }

    @Override
    public void run() {
        System.out.println("男人跑得更快");
    }

    @Override
    public void isSmoking() {
        System.out.println("男人抽烟的多");
    }
}
package com.java.oop3;
/**
 * @ClassName Woman
 * @Description:    女人类
 * @Author Seven
 * @Date 2021/7/30 9:54
 * @Version 1.0
 **/
public class Woman extends Person{
    @Override
    public void run() {
        System.out.println("女人跑得慢一点");
    }

    @Override
    public void eat() {
        System.out.println("女人吃得少");
    }

    @Override
    public void isSmoking() {
        System.out.println("女人抽烟的少");
    }
}
package com.java.oop3;
/**
 * @ClassName PersonTest
 * @Description:    测试类(多态的使用)
 * @Author Seven
 * @Date 2021/7/30 9:54
 * @Version 1.0
 **/
public class PersonTest {
    public static void main(String[] args) {
        PersonTest test = new PersonTest();
        test.function(new Man());   //多态的作用,提高了代码的通用性。
        test.function(new Woman());
        }
    public void function(Person person){
        person.eat();
        person.run();
        person.isSmoking();
    }
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Fish_Vast

您的打赏是对我最大的支持!!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值