一、什麼是抽象類
抽象類是一種特殊的類,它不能被實例化,只能被繼承。抽象類中可以包含抽象方法和非抽象方法。抽象方法是沒有方法體的方法,必須在子類中實現。非抽象方法則是普通的方法,可以直接在抽象類中實現。
二、抽象類的作用
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-hk/n/159786.html
微信掃一掃
支付寶掃一掃