java的繼承具有單繼承的特點,每個子類只能有一個直接父類。
語法格式:
修飾符 class SubClass extends SuperClass{ //類定義部分}在繼承中,繼承的叫做子類,被繼承的叫做父類。子類是對父類的擴展,將可以獲得父類的全部成員變量和方法。a.重寫父類的方法:
public class Bird{ public void fly() { System.out.這中子類包含與父類同名方法的現象被稱為方法重寫(Override),也成為方法覆蓋。
如果需要在子類中調用被覆蓋的同名父類方法,需要怎么辦呢?這時候需要使用super限定。(但是如果父類的方法是具有private訪問權限的,則該方法對于子類是隱藏的,因此子類無法訪問父類中被覆蓋的方法。)b.super限定
class Baseclass{ int a = 5;}public class Subclass extends Baseclass{ int a = 7; public void test1(){ System.out.println(a); } public void test2(){ System.out.println(super.a); } public static void main(String[] args) { SuberClass sc = new Subclass(); //輸出7 sc.test1(); //輸出5 sc.test2(); }}super用于限定該對象調用它從父類繼承得到的視線實例變量或方法。正如this,不能出現在static修飾的方法中一樣,super也不能。static修飾的方法是屬于類的,該方法的調用者可能是一個類,而不是對象,因而super限定也就失去了意義。c.調用父類構造器
在一個構造器調用另一個重載的構造器使用this調用來完成,在子類構造器中調用父類構造器使用super調用來完成。
class Base{ public double size; public String name; public Base(double size, String name) { this.size = size; this.name = name; }}public class Sub extneds Base{ public String color; public Sub(double size, String name, String color) { //使用super調用父類構造器的初始化過程 super(size,name); this.color = color; } public static void main(String[] args) { Sub s = new Sub(5.6,"測試對象","紅色"); System.out.printin(s.size+","+s.name+","+s.color); }}《瘋狂java講義》第五章
新聞熱點
疑難解答