Java面向对象有关多态的相关知识
/*
* 多态:
* 1.编译时多态:一个接口(方法),多种方法(方法重载)
* 2.运行时多态:父类可以接受子类对象
*
* 多态的作用:屏蔽子类差异化,写出通用代码
* 运行时多态的前提是建立在继承的基础之上!
*/
我们来举个简单的例子直观理解一下什么是多态~
其中父类是Brid,子类分别是Chicken, Duck, Goose
1.父类:Brid
package com.lanou;
public class Brid {
public void fly() {
System.out.println("飞扬的小鸟");
}
}
2.子类Chicken
package com.lanou;
public class Chicken extends Brid{
@Override
public void fly() {
System.out.println("一只性感的小鸡");
}
}
3.子类Duck
package com.lanou;
public class Duck extends Brid {
@Override
public void fly() {
System.out.println("用心做鸭");
}
}
4.子类Goose
package com.lanou;
public class Goose extends Brid{
@Override
public void fly() {
System.out.println("麻辣烧大鹅");
}
}
5.main函数
package com.lanou;
public class Main {
public static void main(String[] args) {
Brid brid = new Brid();
Chicken chicken = new Chicken();
Duck duck = new Duck();
Goose goose = new Goose();
//方式1:
brid.fly();
chicken.fly();
duck.getClass();
goose.fly();
//方式2:(多态)
Brid[] brids = {brid, chicken, duck, goose};
for (int i = 0; i < brids.length; i++) {
Brid b = brids[i];
b.fly();
//foreach 格式
/*for(遍历出来的对象 : 要遍历的数组){
*
* }
*
*/
for (Brid brid2 : brids) {
brid2.fly();
}
}
}
}