多态
一:定义:
一种事务的多种形态;
二:多态性可以体现在:
可以调用父类中的子类对象;
前提:1.必须要有继承性;
2:要有方法重写;
/*
* 编译看左边,运行看右边
* 多态的适用性:多态适应与方法,不适应与属性
* */
* 可以调用方法,但是不可以调用属性;
三,例题:
定义一个人类,编写如下方法;
package exer2;
public class Person {
public void eat(){
System.out.println("吃饭");
}
public void toilet(){
System.out.println("上洗手间");
}
}
定义一个男人类,增加如下方法;
package exer2;
public class Man extends Person {
public void eat(){
System.out.println("吃饭");
}
public void toilet(){
System.out.println("上洗手间");
}
public void smoke(){
System.out.println("抽烟");
}
}
定义一个女人类,增加如下方法;
package exer2;
public class Woman extends Person{
public void eat(){
System.out.println("吃饭");
}
public void toilet(){
System.out.println("上洗手间");
}
public void makeup(){
System.out.println("化妆");
}
}
定义一个测试类
package exer2;
public class Exer4 {
public static void main(String[] args) {
Exer4 e =new Exer4();
//直接调用下面的方法;
e.meeting(new Man(),new Woman(),new Woman());
}
public void meeting(Person... ps){
for (int i = 0; i < ps.length; i++) {
ps[i].eat();
ps[i].toilet();
if (ps[i] instanceof Man){
//多态中类型的强转;
Man m =(Man)ps[i];
m.smoke();
}else if (ps[i] instanceof Woman){
Woman w =(Woman) ps[i];
w.makeup();
}
System.out.println();
}
}
}
四:好处
1:多态可以让我们不用关心某个对象到底具体是什么类型,就可以使用该对象的某些方法
2:提高了程序的可扩展性和可维护性