什么是多态 ?多态具体体现在哪些?
本文介绍面向对象的多态。
一、什么是多态?主要体现在哪里?
多态:就是类的方法或者对象具有多种状态,是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; } }