1、定義:繼承允許創建分等級層次的類,就是子類繼承父類的特征行為,使得子類對象具有父類實例的方法,
使得子類具有父類相同的行為。
2、繼承的特性:
a、子類擁有父類非priavte的屬性、方法;
b、子類可以擁有自己的屬性和方法、即子類可以對父類進行擴展;
c、子類可以用自己的方式實現父類的方法;
d、java的繼承是單繼承,但是可以多重繼承;單繼承:一個子類只可以繼承一個父類;多重繼承:A類繼承
B類,B類繼承C類,即C類是B類的父類,B類是A類的父類;
e、繼承提高了類之間的耦合性(繼承的缺點,提高了代碼間的聯系)
3、extends關鍵字:類的繼承是單一繼承,一個子類只能擁有一個父類,extends只能繼承一個類;
1 public class A { 2 public A() { 3 System.out.println("hello world"); 4 } 5 } 6 // B子類繼承A父類(extends只能繼承一個類) 7 public class B extends A{ 8 }
4、implements關鍵字:implements使類可以繼承多個接口,多個接口用逗號分隔;
1 public interface A { 2 public void sayA(); 3 } 4 public interface B { 5 public void sayB(); 6 } 7 // C子類繼承A、B多個接口(implements使類可以繼承多個接口,多個接口用逗號分隔) 8 public class C implements A,B { 9 }
5、super關鍵字:用來引用當前對象的父類,實現對父類成員的訪問;
6、this關鍵字:當前對象的引用;
7、final關鍵字:聲明類不能被繼承,即最終類,修飾方法不能被子類重寫;
a、語法: final class 類名 { 方法、屬性 }
訪問修飾符(public、private、default、protected) final 返回值類型 方法名(參數){ 方法體 }
b、實例變量也可以被定義為 final,被定義為 final 的變量不能被修改;被聲明為 final 類的方法自動地聲明
為final,但是實例變量並不是 final;
c、訪問修飾符
public——對所有類可見,被聲明為 public 的類、方法、構造方法和接口能夠被任何其他類訪問;
private——在同一類中可見 不能修飾類(外部類),被聲明為 private 的方法、變量和構造方法只能被
所屬類訪問;
default——在同一包內可見;
protected——對同一包內的類和所有子類可見 不能修飾類(外部類)
d、非訪問修飾符
static——用來修飾類方法和類變量;
final——用來修飾類、方法和變量,final 修飾的類不能夠被繼承,修飾的方法不能被繼承類重新定義,
修飾的變量為常量,是不可修改的;
abstract——用來創建抽象類和抽象方法;
synchronized、volatile——主要用於線程的編程,synchronized 關鍵字聲明的方法同一時間只能被一
個線程訪問;
8、構造器:子類不能繼承父類的構造器(構造方法、構造函數),如果父類的構造器帶有參數,子類的構造器
中必須顯示的通過super關鍵字調用父類的構造器(帶參數);如果父類的構造器不帶有參數,不需
要子類顯示調用,系統會自動調用;