本文介绍面向对象的多态。
一、什么是多态?主要体现在哪里?
- 多态:就是类的方法或者对象具有多种状态,是OOP的第三大有太特征,是建立在封装和继承基础上的。
- 体现哪些方面?
1 .方法多态
- 对象多态
二、简单举例演示
package com.hspedu.homework;
public class Homework16 {
public static void main(String[] args) {
AAA obj = new BBB("yang","male");//向上转型
//下面体现了运行类型可以改变
obj.getName();
AAA b1 = obj;
System.out.println("obj的运行类型是:" + obj.getClass() ); //BBB
obj = new CCC("wang","female","201912");
System.out.println("obj的运行类型是:" + obj.getClass() );//CCC
obj = b1;
System.out.println("obj的运行类型是:" + obj.getClass() );//BBB
//向下转型
BBB b2 = (BBB)obj;
b2.getGender(); //向下转型之后 才可以访问子类中特有的成员。
b2.getName();
System.out.println("obj的运行类型是:" + obj.getClass() );//BBB
//这里发现将父类引用对象向下转型为子类
}
}
class AAA {
private String name = "wang";
public AAA(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
class BBB extends AAA{
private String gender ;
public BBB(String name, String gender) {
super(name);
this.gender = gender;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
}
class CCC extends BBB{
private String stu_id;
public CCC(String name, String gender, String stu_id) {
super(name, gender);
this.stu_id = stu_id;
}
public String getStu_id() {
return stu_id;
}
public void setStu_id(String stu_id) {
this.stu_id = stu_id;
}
}
版权声明:本文为weixin_43000547原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。