java多态那些事

java多态那些事,第1张

java多态那些事

理解java多态前,我首先接触的是python的多态,接下来我将基于python多态的基础上去试图描述我对于Java多态的理解。

一、多态是什么

多态是指一个对象,在不同时刻展现出来的不同形态,

通俗一点来说,对于我自身

在学校里,我是学生,即:Student a = new me();

而在家里,我是孩子,即:Child b = new me();

这就是我在不同时刻的不同形态,亦可称之为我的多态。

二、多态的前提与体现

(1)有继承或实现关系

(2)有方法重写

(3) 有父类引用指向子类对象

三、多态中成员的特点
  1. 多态成员变量:编译运行看左边
  2. 多态成员方法:编译看左边,运行看右边
四、具体举例深入理解

接下来我们将建立三个类,分别为human类,me类和demo类。其中me类为human的子类,demo为测试类。

public class Human
{

    public int age = 18;

    public void learn()
    {
        System.out.println("人会学习");
    }
}

human 类中包含成员变量age与成员方法learn。

public class Me extends Human
{

    public int age = 19;
    public int height = 167;

    @Override
    public void learn()
    {
        System.out.println("我会学习");
    }

    public void play()
    {
        System.out.println("我会摸鱼");
    }
}

me类继承了Human类,其中包含成员变量age与height,重写了成员方法learn,拥有自己的play方法。

public class Demo
{
    public static void main(String[] args)
    {
        Human a = new Me();
        
        System.out.println(a.age);          //多态形式访问成员变量是访问父类的,故输出18        
//      System.out.println(a.height);     本句语句会报错,体现出编译要看左边

        a.learn();    //多态形式访问成员方法,输出重写后内容,故输出“我会学习”(运行看右边)
//      a.play();   本句语句会报错,体现编译看左边。

    }
}

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5695344.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存