Java語言具備單繼承的特色,不支持多繼承,每一個子類只有一個直接父類。java
子類會繼承父類中全部非private修飾的屬性和方法,且不能得到父類的構造器。this
class subClassName extends superClassName[implements interfaceNameList]{ //類體 } extends//繼承關鍵字
方法的重寫是指在子類中使用和父類徹底同名的方法,且方法的參數(個數,類型,排列順序)和返回類型徹底同樣。code
重寫方法時,子類的訪問控制權限不能低於父類的訪問控制權限。對象
使用super關鍵字能夠訪問被子類隱藏或重寫成員,也能夠訪問未被隱藏的成員。繼承
若是沒有顯式的使用super關鍵字調用父類的構造方法,系統會隱含調用super這個方法。接口
當在子類構造器中調用父類構造器時,super關鍵字應該做爲子類構造器方法體的第一個執行語句。class
super.方法名([參數表]);
super.成員變量名;
super([參數表]);
除了默認指代當前實例對象,this還有其餘用法。import
若是一個類中定義了多個構造方法,可使用this在某一個構造方法中引用其餘構造方法。變量
抽象類是指只能被繼承而不能生成具體對象的類。List
抽象類中能夠包含抽象方法,也能夠不包含抽象方法。但只要一個類包含一個抽象方法,這個類就是抽象的。
抽象類只能做爲父類使用,由它派生的子類必須實現抽象類的全部抽象方方法。
abstract class className{ //屬性 //抽象方法 [訪問控制修飾符]abstract 返回值類型 方法名([形參列表]); //非抽象方法 [訪問修飾控制符]返回值類型 方法名([形參列表]){ } }
抽象方法僅僅爲全部子類定義一個統一的接口,具體實現經過派生類對抽象方法的覆蓋來實現。
抽象方法只有聲明,沒有方法體,以";"結尾。
構造方法,靜態方法,私有方法,final方法不能被聲明爲抽象方法。
abstract datatype AbstractMethodName(parameterList);
被final修飾的類,終極類不能擁有子類。
被final修飾的方法,終極方法不能被子類重寫。
final修飾的變量,終極變量取值在整個程序中不能改變,即常量。
接口是一種特殊的抽象類。
經過接口能夠實現類間多重繼承的功能。
與類的繼承區分,對接口的繼承稱爲實現。
接口中不能定義變量,只能定義final修飾的常量。
接口是一個抽象類,接口中的方法都是抽象方法。
interface關鍵字
[public] interface interfaceName[extends 父接口名列表]{ //數據成員聲明 [public][static]final datatype variableName = Value; //抽象方法聲明 [public][abstract][native]return DataType methodName(parametersList); }
implements關鍵字
public class Student implement people{ }
包是一種鬆散的類的集合,能夠將各類類文件組織起來。相似於其餘語言的命名空間,當一個類須要在多個地方重用時,應該把它放在包中。
缺省時,系統爲每個.Java源文件建立一個無名包,同個Java文件每一個類都屬於同一個包。
建立包的文件應該放在Java源文件的的第一個語句。
經常將包放在JAR文件中,一個JAR文件每每會包含多個包。
package packageName; //多級子目錄 package packageName1,packageName2,packageName3;
//加載包中指定的類 import 包名.類名; //加載包中的全部類 import 包名.*;