Java繼承

在 Java 中經過 extends 關鍵字能夠申明一個類是從另一個類繼承而來的java

類的繼承格式

class 父類 {
}
class 子類 extends 父類 {
}
須要注意的是 Java 不支持多繼承,但支持多重繼承。
  • 子類擁有父類非 private 的屬性、方法。ide

  • 子類能夠擁有本身的屬性和方法,即子類能夠對父類進行擴展。ui

  • 子類能夠用本身的方式實現父類的方法。this

  • Java 的繼承是單繼承,可是能夠多重繼承,單繼承就是一個子類只能繼承一個父類,多重繼承就是,例如 A 類繼承 B 類,B 類繼承 C 類,因此按照關係就是 C 類是 B 類的父類,B 類是 A 類的父類,這是 Java 繼承區別於 C++ 繼承的一個特性。spa

  • 提升了類之間的耦合性(繼承的缺點,耦合度高就會形成代碼之間的聯繫越緊密,代碼獨立性越差)。code

  • 繼承關鍵字

    繼承能夠使用 extends 和 implements 這兩個關鍵字來實現繼承,並且全部的類都是繼承於 java.lang.Object,當一個類沒有繼承的兩個關鍵字,則默認繼承object(這個類在 java.lang 包中,因此不須要 import)祖先類對象

  • 在 Java 中,類的繼承是單一繼承,也就是說,一個子類只能擁有一個父類,因此 extends 只能繼承一個類。blog

  • public class Animal {
  • private String name;
  • private int id;
  • public Animal(String myName, String myid){ //初始化屬性值 }
  • public void eat(){ //吃東西方法的具體實現 }
  • public void sleep() { //睡覺方法的具體實現 } }
  • public class Penguin extends Animal{ }
使用 implements 關鍵字能夠變相的使java具備多繼承的特性,使用範圍爲類繼承接口的狀況,能夠同時繼承多個接口(接口跟接口之間採用逗號分隔)。
public interface A {
public void eat();
public void sleep(); }
public interface B {
public void show(); }
public class C implements A,B { }

super關鍵字:咱們能夠經過super關鍵字來實現對父類成員的訪問,用來引用當前對象的父類。繼承

this關鍵字:指向本身的引用。接口

class Animal {void eat(){ System.out.println("animal : eat"); } }

class Dog extends Animal { void eat() { System.out.println("dog : eat"); }

void eatTest() { this.eat(); // this 調用本身的方法

super.eat(); // super 調用父類方法 } }

public class Test { public static void main(String[] args) {

Animal a = new Animal();

a.eat();

Dog d = new Dog();

d.eatTest(); } }

final 關鍵字聲明類能夠把類定義爲不能繼承的,即最終類;或者用於修飾方法,該方法不能被子類重寫:

相關文章
相關標籤/搜索