java學習筆記(八):繼承
阿新 • • 發佈:2017-10-27
this關鍵字 log implement java學習 方式 show 使用 類型 多繼承
我們可以通過super關鍵字來實現對父類成員的訪問,用來引用當前對象的父類。
繼承
-
子類擁有父類非private的屬性,方法。
-
子類可以擁有自己的屬性和方法,即子類可以對父類進行擴展。
-
子類可以用自己的方式實現父類的方法。
-
Java的繼承是單繼承,但是可以多重繼承,單繼承就是一個子類只能繼承一個父類,多重繼承就是,例如A類繼承B類,B類繼承C類,所以按照關系就是C類是B類的父類,B類是A類的父類,這是java繼承區別於C++繼承的一個特性。
-
提高了類之間的耦合性(繼承的缺點,耦合度高就會造成代碼之間的聯系)。
extends關鍵字:在 Java 中,類的繼承是單一繼承,也就是說,一個子類只能擁有一個父類,所以 extends 只能繼承一個類。
1 public class Animal { 2 private String name; 3 private int id; 4 public Animal(String myName, String myid) { 5 //初始化屬性值 6 } 7 public void eat() { //吃東西方法的具體實現 } 8 public void sleep() { //睡覺方法的具體實現 } 9 } 10 11 public class Penguin extends Animal{12 }
implements 關鍵字:使用 implements 關鍵字可以變相的使java具有多繼承的特性,使用範圍為類繼承接口的情況,可以同時繼承多個接口(接口跟接口之間采用逗號分隔)。
1 public interface A { 2 public void eat(); 3 public void sleep(); 4 } 5 6 public interface B { 7 public void show(); 8 } 9 10 public class C implements A,B { 11 }
super關鍵字:
this關鍵字:指向自己的引用。
1 class Animal{ 2 void eat(){ 3 System.out.println("animal eat"); 4 } 5 } 6 7 class Dog extends Animal{ 8 void eat(){ 9 System.out.println("dog eat"); 10 } 11 void eatTest(){ 12 this.eat(); // this 調用自己的方法 13 super.eat();// super 調用父類方法 14 } 15 } 16 17 public class Test { 18 public static void main(String[] args){ 19 Animal animal = new Animal(); 20 animal.eat(); 21 System.out.println("---------------"); 22 Dog dog = new Dog(); 23 dog.eat(); 24 System.out.println("---------------"); 25 dog.eatTest(); 26 } 27 }
運行輸出:
animal eat --------------- dog eat --------------- dog eat animal eat
final 關鍵字:聲明類可以把類定義為不能繼承的,即最終類;或者用於修飾方法,該方法不能被子類重寫:
聲明方法:
修飾符(public/private/default/protected) final 返回值類型 方法名(){//方法體}
java學習筆記(八):繼承