理解java多态前,我首先接触的是python的多态,接下来我将基于python多态的基础上去试图描述我对于Java多态的理解。
一、多态是什么多态是指一个对象,在不同时刻展现出来的不同形态,
通俗一点来说,对于我自身
在学校里,我是学生,即:Student a = new me();
而在家里,我是孩子,即:Child b = new me();
这就是我在不同时刻的不同形态,亦可称之为我的多态。
二、多态的前提与体现(1)有继承或实现关系
(2)有方法重写
(3) 有父类引用指向子类对象
三、多态中成员的特点- 多态成员变量:编译运行看左边
- 多态成员方法:编译看左边,运行看右边
接下来我们将建立三个类,分别为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(); 本句语句会报错,体现编译看左边。 } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)