public abstract class Animal { private String name; public Animal(String name) { this.name = name; } public String getName() { return name; } public abstract void makeSound(); } public class Dog extends Animal { public Dog(String name) { super(name); } public void makeSound() { System.out.println("汪汪汪!"); } } public class Cat extends Animal { public Cat(String name) { super(name); } public void makeSound() { System.out.println("喵喵喵!"); } }
在Java中,抽象、多態(tài)和封裝是非常重要的概念。
抽象是指將一些基礎(chǔ)的、功能相似的類提取出來,形成抽象的類(即抽象類),由子類來具體實(shí)現(xiàn)。在Java中,我們可以通過加上abstract關(guān)鍵字來定義一個(gè)抽象類,同時(shí)把其中一些方法定義成抽象方法,即只有方法名,沒有方法體。
多態(tài)是指同一個(gè)方法名可以被不同的對(duì)象調(diào)用,產(chǎn)生不同的行為。在Java中,多態(tài)分為兩種:靜態(tài)多態(tài)(方法重載)和動(dòng)態(tài)多態(tài)(方法重寫)。
封裝是指隱藏類的某些內(nèi)部細(xì)節(jié),只對(duì)外提供接口(即公共方法),防止外界直接訪問類的內(nèi)部數(shù)據(jù)。Java中,我們可以使用public、protected、private等關(guān)鍵字來控制方法和屬性的訪問權(quán)限,提高程序的安全性和封裝性。