一、繼承(inheritance)
1.1 繼承是什么
簡而言之,繼承就是在現有類的基礎上,增加新的方法或者重寫基類的方法的一種方式。
繼承還是面向對象語言的基本特征【繼承、多態和封裝】之一。
在Java中,java.lang.Object這個類是所有類的基類【也叫父類或者超類】。繼承涉及到的兩個關鍵字如下:
extends: 用于繼承類,每個類最多只能繼承一個父類
implements: 用于繼承接口,每個類繼承接口數量不做限制
該下面我們只是創建了一個Person類,且沒有明確指定繼承某個類,但是其基類默認為Object。
/**
* 創建類: 人
*/
public class Person{
//姓名
public void name(){}
//性別
public void sex(){}
}
1.2 繼承怎么用
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() {}
}
}
1、該上面類Man繼承了父類Person和接口IPerson,此時就可選擇性的重寫父類Person中的方法,但是接口IPerson中所定義的所有接口必須實現重寫。
2、如果類Man為抽象類(被abstract修飾),則繼承父類或接口時,可選擇不重寫、部分重寫或全部重寫父類中的方法和接口中定義的接口。
二、重載(overloading)
2.1 重載是什么
一句話概括:在同一類中,有著相同名稱,但形式參數不同的方法。
比如在上面類JavaPolymorphic中存在以下兩個方法:
/**
* @param age 年齡
* @param name 姓名
*/
public Man(int age, String name){}
/**
* @param city 城市
*/
public Man(String city){}
三、重寫(overriding)
3.1 重寫是什么
剛在上面例子也多次提到了重寫,重寫就是子類繼承父類后,覆蓋父類中的某個方法的操作就是重寫的過程。
四、多態(Polymorphism)
4.1 多態是什么
繼承是多態的一種表現形式,一個類型(Person類型)可表現出來多種狀態(男人Man,并且具備年齡、姓名等不同屬性)
多態同樣也是面向對象語言的基本特征【繼承、多態和封裝】之一。
4.2 多態的好處
降低代碼耦合程度,更易于功能的擴展。