抽象类
当我们编写一个类时,常常会在该类中定义一些方法,这些方法通常情况下是具体的,但在某些情况下,我们无法准确的知道这些方法的细节,这时候就需要我们创建一个抽象类,这些方法就是抽象方法。抽象类一般指父类,专门用来让子类继承,抽象方法必须被子类重写。我们通过添加abstract关键字来使该类变成抽象类,同样添加abstract关键字使方法变成抽象方法。
注意:
一个抽象类中可以不定义抽象方法,但是只要类中有一个抽象方法,则该类一定是抽象类。
抽象类不能被实例化。
如果一个子类继承一个抽象类,则子类需要通过覆盖的方式来重写抽象类中的所有抽象方法。如果子类没有完全重写抽象父类中所有方法,则子类仍是抽象的。
抽象方法可以与public,protected复合使用,但不能与final,private和static使用。
abstract不能用于修饰属性,修饰局部变量,也不能用于修饰构造器。
实例:要求计算图形三角形,圆形,矩形的面积,要求定义一个抽象的图形类,并定义三角形,矩形,圆形这三个子类继承其抽象的图形类,代码如下:
父类shape
package com.section4;
public abstract class Shape {
private String color;
public abstract double calcPerimenter();
public abstract String getType();
public Shape(String color) {
this.color = color;
System.out.println("---执行了Shape类的构造方法---");
}
public String setColor() {
return this.color = color;
}
public String getColor() {
return color