對於Java程序員來說,public和abstract是兩個非常常見的關鍵字。public通常用於控制訪問權限,使得類、變量和方法可以被其他類訪問。而abstract用來定義抽象類和抽象方法,表示該類或方法只定義方法的簽名,沒有實現。在Java中,同時使用public和abstract關鍵字是非常常見的,我們通常會定義public abstract的類或方法。
一、public abstract在Java中的基礎
在Java中,public abstract通常用於定義抽象類和抽象方法。抽象類是一種不能被實例化的類,通常只用於定義接口和抽象方法。抽象方法則是沒有實現的方法,它只有方法的簽名,沒有方法體。如果一個類或方法被定義為public abstract,那麼這個類或方法必須是抽象的。
public abstract class Animal {
public abstract void makeSound();
}
public class Cat extends Animal {
public void makeSound() {
System.out.println("Meow");
}
}
在上面的例子中,Animal是一個抽象類,它只有一個抽象方法makeSound。Cat繼承Animal類,並且實現了makeSound方法。由於Animal類是抽象的,因此它不能被實例化,我們只能定義Cat類的實例。
二、public abstract的重要性
1. 實現多態性
public abstract最重要的作用是實現多態性。多態性是指不同對象對同一消息做出不同的響應。在Java中,如果一個類繼承了一個抽象類,那麼它必須實現抽象類中的所有抽象方法,否則該類也必須定義為抽象類。這樣一來,我們就可以使用多態性來處理對象。例如:
public abstract class Shape {
public abstract void draw();
}
public class Circle extends Shape {
public void draw() {
System.out.println("Drawing Circle");
}
}
public class Square extends Shape {
public void draw() {
System.out.println("Drawing Square");
}
}
public static void main(String[] args) {
Shape s1 = new Circle();
Shape s2 = new Square();
s1.draw();
s2.draw();
}
在上面的例子中,我們定義了一個抽象類Shape,並且定義了兩個具體的類Circle和Square,它們都繼承Shape類並實現了draw方法。在main方法中,我們可以通過多態性將Circle和Square類實例化成Shape類型的對象,並調用draw方法,這樣就可以根據傳入的不同對象調用不同的方法。
2. 實現代碼復用
public abstract還可以用於實現代碼復用。抽象類是一種不能被實例化的類,通常只用於定義接口和抽象方法。當我們創建一個新的類時,如果這個類和其他類很相似,那麼我們可以將這些共性抽象出來,定義成一個抽象類。這樣一來,我們就可以通過繼承抽象類來實現代碼的復用。
public abstract class Employee {
private String name;
private double salary;
public Employee(String name, double salary) {
this.name = name;
this.salary = salary;
}
public String getName() {
return name;
}
public double getSalary() {
return salary;
}
public abstract double calculateSalary();
}
public class Manager extends Employee {
private double bonus;
public Manager(String name, double salary, double bonus) {
super(name, salary);
this.bonus = bonus;
}
public double calculateSalary() {
return getSalary() + bonus;
}
}
public static void main(String[] args) {
Employee e = new Manager("Tom", 5000.0, 1000.0);
System.out.println(e.getName() + "的工資是:" + e.calculateSalary());
}
在上面的例子中,我們定義了一個Employee抽象類,它包含了兩個成員變量name和salary,以及一個抽象方法calculateSalary。Mananger類繼承了Employee,並且實現了calculateSalary方法。在main方法中,我們可以將Manager類實例化成Employee類型的對象,並調用calculateSalary方法,這樣就可以計算出Manager的工資。
三、總結
public abstract是Java中非常重要的關鍵字之一,它可以用於定義抽象類和抽象方法。它的最重要的作用是實現多態性,同時也可以用於實現代碼的復用。如果你想編寫高質量、易於維護的Java代碼,那麼你必須理解public abstract的重要性,並善於使用它。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/297214.html
微信掃一掃
支付寶掃一掃