欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

理解Java中的多态

程序员文章站 2022-05-06 18:20:15
...

1. 一句话:父类类型能够使用父类全部方法+子类继承父类的方法(包括重写的方法)

这个设计非常人性:可以想一想,假如一对父子,老王和小王。
老王{ 有钱 , 伴侣一个 , 投资房地产 }
小王{ 伴侣n个 , 投资电竞 }

伴侣:就可一看做小王重载了老王, 投资:小王重写了老王

老王 强化版老王 = new 小王();
强化版的老王{ 仍旧有钱、始终坚持一个伴侣,学不了小王乱撩网红、投资与时俱进,去投电竞}

2. 代码

public class Father {
    public void Call(){
        System.out.println("叫爸爸");
        Meat();
    }

    public void Meat(){
        System.out.println("就带你去喝酒");
    }
}

public class Son extends Father{
    //重载父类方法
    public void Call( String s){
        System.out.println(s+",叫爸爸");
        Meat();
    }

    //重写父类方法
    public void Meat(){
        System.out.println("就带你去买包");
    }
}
public class Demo {
    public static void main(String[] args) {
        Father father = new Father();
        father.Call();

        System.out.println("-----------分割----------");

        Son son = new Son();
        son.Call();//子类中没有这个方法,说明这是继承父亲的

        System.out.println("-----------分割----------");
        Son son2 = new Son();
        son2.Call("美女");//调用子类中重载的方法

        System.out.println("-----------分割----------");

        Father richer = new Son();
        richer.Call();

    }
}

结果:

叫爸爸
就带你去喝酒
-----------分割----------
叫爸爸
就带你去买包
-----------分割----------
美女,叫爸爸
就带你去买包
-----------分割----------
叫爸爸
就带你去买包