一、什么是抽象类
抽象类是一种特殊的类,它不能被实例化,只能被继承。抽象类中可以包含抽象方法和非抽象方法。抽象方法是没有方法体的方法,必须在子类中实现。非抽象方法则是普通的方法,可以直接在抽象类中实现。
二、抽象类的作用
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/n/159786.html
微信扫一扫
支付宝扫一扫