重写
啥是重写? 想这么一个事儿. 我们看电视剧的时候, 经常看到这样一个烂剧情. 儿子不满意父亲对儿子未来的包办,自己出来独立创业的狗血剧情. 咱们先不管剧情有多烂. 想这么个事儿. 父亲给的东西一定是儿子满意的么? 不一定吧. 那怎么办呢? 自己独立创业啊~~~
重写: 子类对父类给的方法不满意. 对父类中的方法进行重新定义.
要求: 子类方法的声明必须和父类中的方法完全一致.
比如, 历史上著名的李渊和李世民父子~~
package com.lewen.opp; public class Emperor { public void makeCountry(){ System.out.println("皇帝建立了一个国家"); } } package com.lewen.opp; public class Prince extends Emperor { public void makeCountry(){ System.out.println("太子要建立一个新的国家"); } } package com.lewen.opp; public class Test { public static void main(String[] args) { Prince pri = new Prince(); pri.makeCountry(); } }
OK. 搞定. 让你再蹦~~ 我们发现执行的时候. 看不见李渊了.
但是啊, 我们都清楚. 大唐的建立, 离不开李渊, 是李渊先牛B, 然后才是李世民牛B.
所以, 我还想看见李渊的一些功劳. 当然了. 主要功劳还必须得是我李世民的.
package com.lewen.opp; public class Prince extends Emperor { public void makeCountry() { // 方法的重写,覆盖 super.makeCountry(); //半盖 System.out.println("太子要建立一个新的国家"); } }
方法的重写又被称为覆盖. 上面这种写法, 通过super来调用父类中被重写了的方法被称为 半盖~~