终于进入到了三大特性的最后一个:多态,对比之前两大特性(封装和继承)来说,理解多态的概念及使用相对来说难度要大一点,初学者需要多做练习加强理解。
一、多态的介绍
在java中多态可以体现在方法上,比如方法的重载,同名方法可以有不同的执行结果,同样,多态也可以体现在面向对象中,一个对象可以使用多个类型进行表示。
打个比方
:学生和老师上班都需要打卡,但是两者的打卡是不一样的,这个时候就可以创建一个他们共同的类(用于打卡)并通过多态的概念来实现两者的不一样
二、面向对象的多态简单使用
子类对象的类型使用父类的类型
Father son = new Son();
简单案例:学生教师管理系统-注册功能
Human类:注册功能register
Student类:继承Human类并重写父类的register方法
Test类:
Human student = new Student();
student.register(); //子类和父类都有register方法,但是这里调用的是子类的register
public static void register(Human t){
System.out.print(t.name);
}
三、使用多态的口诀
编译看左边,运行看右边
解释:编译的时候看的是左边(父类),如果父类中没有该属性或者方法则会报错。
运行的时候看的是右边(子类),调用的方法和属性也是子类当中的
四、注意
1、在多态中,调用的静态方法是父类的,因为多态对象把自己看做是父类类型,直接使用父类中的静态资源。
2、多态的前提是:继承+父类方法的重写
3、父类引用指向子类的对象如:Animal a = new Cat();
五、推荐
本篇CSDN内容不太全面,大家可以移步到泡泡老师的CSDN,内容更加的详细:泡泡老师的csdn