1、繼承(inheritance)
1.1 繼承是什麼
簡而言之,繼承就是在現有類的基礎上,增長新的方法或者重寫基類的方法的一種方式。
繼承仍是面嚮對象語言的基本特徵【繼承、多態和封裝】之一。java
在Java中,java.lang.Object這個類是全部類的基類【也叫父類或者超類】。繼承涉及到的兩個關鍵字以下:ide
extends: 用於繼承類,每一個類最多隻能繼承一個父類 implements: 用於繼承接口,每一個類繼承接口數量不作限制
該下面咱們只是建立了一個Person類,且沒有明確指定繼承某個類,可是其基類默認爲Object。.net
/** * 建立類: 人 */ public class Person{ //姓名 public void name(){} //性別 public void sex(){} }
1.2 繼承怎麼用code
public class JavaPolymorphic { /** * 建立一個接口 */ public interface IPerson{ //接口中的方法 void work(); } /** * 建立類: 男人,並繼承Person */ public class Man extends Person implements IPerson{ /** * 重寫了父類Person的name()方法 */ @Override public void name() { super.name(); } /** * 重寫了接口IPerson中的work()方法 */ @Override public void work() {} } }
一、該上面類Man繼承了父類Person和接口IPerson,此時就可選擇性的重寫父類Person中的方法,可是接口IPerson中所定義的全部接口必須實現重寫。
二、若是類Man爲抽象類(被abstract修飾),則繼承父類或接口時,可選擇不重寫、部分重寫或所有重寫父類中的方法和接口中定義的接口。對象
2、重載(overloading)
2.1 重載是什麼
一句話歸納:在同一類中,有着相同名稱,但形式參數不一樣的方法。
好比在上面類JavaPolymorphic中存在如下兩個方法:blog
/** * @param age 年齡 * @param name 姓名 */ public Man(int age, String name){} /** * @param city 城市 */ public Man(String city){}
3、重寫(overriding)
3.1 重寫是什麼
剛在上面例子也屢次提到了重寫,重寫就是子類繼承父類後,覆蓋父類中的某個方法的操做就是重寫的過程。繼承
4、多態(Polymorphism)
4.1 多態是什麼
繼承是多態的一種表現形式,一個類型(Person類型)可表現出來多種狀態(男人Man,而且具有年齡、姓名等不一樣屬性)
多態一樣也是面嚮對象語言的基本特徵【繼承、多態和封裝】之一。
4.2 多態的好處
下降代碼耦合程度,更易於功能的擴展。接口