一、什麼是抽象類
抽象類是一種特殊的類,它不能被實例化,只能被繼承。抽象類中可以包含抽象方法和非抽象方法。抽象方法是沒有方法體的方法,必須在子類中實現。非抽象方法則是普通的方法,可以直接在抽象類中實現。
二、抽象類的作用
1、抽象類用於約束子類的行為,可以規定子類必須實現哪些方法。
public abstract class Animal { public abstract void eat(); public abstract void sleep(); } public class Cat extends Animal { public void eat() { System.out.println("Cat is eating..."); } public void sleep() { System.out.println("Cat is sleeping..."); } } public class Dog extends Animal { public void eat() { System.out.println("Dog is eating..."); } public void sleep() { System.out.println("Dog is sleeping..."); } }
2、抽象類可以用於代碼復用,可以將一些通用的方法和屬性放在抽象類中。
public abstract class Shape { private String color; public Shape(String color) { this.color = color; } public String getColor() { return color; } public abstract double getArea(); } public class Rectangle extends Shape { private double width; private double height; public Rectangle(String color, double width, double height) { super(color); this.width = width; this.height = height; } public double getArea() { return width * height; } } public class Circle extends Shape { private double radius; public Circle(String color, double radius) { super(color); this.radius = radius; } public double getArea() { return Math.PI * radius * radius; } }
三、抽象類與介面的區別
1、抽象類可以包含抽象方法和非抽象方法,而介面只能包含抽象方法。
2、一個類只能繼承一個抽象類,但是可以實現多個介面。
3、抽象類可以有構造方法,而介面不能有構造方法。
4、抽象類和介面都不能被實例化。
四、注意事項
1、抽象類中的抽象方法必須在子類中實現,否則子類也必須聲明為抽象類。
2、抽象類中可以有非抽象方法的實現,這些方法可以被子類直接使用。
3、抽象類中可以包含變數和常量。
五、總結
抽象類是一種特殊的類,不能被實例化,只能被繼承。抽象類用於約束子類的行為,可以規定子類必須實現哪些方法,也可用於代碼復用。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/159786.html