搜尋
首頁Javajava教程透過實例了解Java中的繼承

透過實例了解Java中的繼承

繼承是物件導向程式設計(OOP)的核心概念,它允許一個類別取得另一個類別的屬性(屬性和方法)。在Java中,繼承是使用extends關鍵字實現的,並表示「is-a」關係。本文透過一個實際例子解釋了Java中的繼承。

程式碼範例

// Defining a class
class Animal {
    // General attributes
    protected String colour;
    protected String breed;
    protected int age;

    // General methods
    public String sleep() {
        return "Both cats and dogs sleep";
    }

    public String eat() {
        return "They also eat";
    }

    // Constructor
    public Animal(String colour, String breed, int age) {
        this.colour = colour;
        this.breed = breed;
        this.age = age;
    }

    // Getters and setters
    public String getColour() {
        return colour;
    }

    public void setColour(String colour) {
        this.colour = colour;
    }

    public String getBreed() {
        return breed;
    }

    public void setBreed(String breed) {
        this.breed = breed;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

// Cat class inheriting from Animal class
class Cat extends Animal {
    private String catName;

    public Cat(String colour, String breed, int age, String catName) {
        super(colour, breed, age); // Call the parent class constructor
        this.catName = catName;
    }

    public String getCatName() {
        return catName;
    }

    public void setCatName(String catName) {
        this.catName = catName;
    }

    public String catSound() {
        return "Cat meows!";
    }
}

// Dog class inheriting from Animal class
class Dog extends Animal {
    private String dogName;

    public Dog(String colour, String breed, int age) {
        super(colour, breed, age);
    }

    public String getDogName() {
        return dogName;
    }

    public void setDogName(String dogName) {
        this.dogName = dogName;
    }

    public String dogSound() {
        return "Dog barks!";
    }
}

public class Demo {
    public static void main(String[] args) {
        Cat myCat = new Cat("Brown", "Persian", 2, "Tom");
        Dog myDog = new Dog("Black", "Labrador", 3);

        // Display Cat details
        System.out.println("Cat's Name: " + myCat.getCatName());
        System.out.println("Cat's Colour: " + myCat.getColour());
        System.out.println("Cat's Breed: " + myCat.getBreed());
        System.out.println("Cat's Age: " + myCat.getAge());
        System.out.println("Cat Sound: " + myCat.catSound());
        System.out.println("Cat Behavior: " + myCat.eat() + " and " + myCat.sleep());

        // Display Dog details
        System.out.println("Dog's Colour: " + myDog.getColour());
        System.out.println("Dog's Breed: " + myDog.getBreed());
        System.out.println("Dog's Age: " + myDog.getAge());
        System.out.println("Dog Sound: " + myDog.dogSound());
    }
}

程式碼中的關鍵概念

父類(動物):

  • 定義所有動物共有的共同屬性(顏色、品種、年齡)和方法(睡眠、進食)。
  • 提供建構子來初始化這些屬性。
  • 包含用於封裝的 getter 和 setter。

兒童課程(貓和狗):

Understanding Inheritance in Java Through a Practical Example
Understanding Inheritance in Java Through a Practical Example

  • 擴展Animal類別並繼承其屬性和方法。
  • 新增特定屬性(catName、dogName)和行為(catSound、dogSound)。
  • 使用super關鍵字呼叫父類別建構子並初始化繼承的屬性。

示範課程:

  • 作為程式的入口點。
  • 示範如何建立 Cat 和 Dog 類別的物件並存取它們的屬性和方法。

繼承的好處

  • 程式碼可重複使用性:Cat 和 Dog 類別重複使用 Animal 類別中的程式碼。
  • 可擴充性:可以透過擴充 Animal 類別輕鬆地新增新的子類別(例如 Bird、Fish)。
  • 多態性:可以在子類別中重寫 sleep 和 eat 等共享方法,以提供特定的行為。

程式的輸出

Cat's Name: Tom
Cat's Colour: Brown
Cat's Breed: Persian
Cat's Age: 2
Cat Sound: Cat meows!
Cat Behavior: They also eat and Both cats and dogs sleep
Dog's Colour: Black
Dog's Breed: Labrador
Dog's Age: 3
Dog Sound: Dog barks!

我的 GitHub
java 倉庫

以上是透過實例了解Java中的繼承的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前By尊渡假赌尊渡假赌尊渡假赌
威爾R.E.P.O.有交叉遊戲嗎?
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器