抽象类:抽象类前使用abstract关键字修饰,则该类为抽象类。
一、应用场景:
1、在某些情况下,某个父类只是知道其子类应该包含怎样的方法,但无法准确知道其子类如何实现这些方法。
2、从多个具有相同特征的类中抽象出一个抽象类,以这个抽象类作为子模板,从而避免了子类设计的随意性。
二、作用
限制规定子类必须实现某些方法,但不关注实现细节。
三、使用规则
1、abstract 定义抽象类;
2、abstract定义抽象方法,只有声明,不需要实现;
3、包含抽象方法的类是抽象类;
4、抽象类中可以包含普通的方法,也可以没有抽象方法;
5、抽象类不能直接创建,可以定义引用变量,指向子类对象;
例如:
1、抽象类,父类
package com.shape;
public abstract class Shape {
//父类Shape约束子类必须具有的计算面积的方法
public abstract void area();
//父类Shape约束子类必须具有的计算周长的方法
public abstract void perimeter();
}
package com.shape;
public class Circle extends Shape {
private float r;
public float getR() {
return r;
}
public void setR(float r) {
this.r = r;
}
@Override
public void area() {
// TODO Auto-generated method stub
double area = (3.14) * r * r;
System.out.println("长方形面积为:"+area);
}
@Override
public void perimeter() {
// TODO Auto-generated method stub
System.out.println("长方形周长为:"+(3.14)*2*r);
}
}
package com.shape;
public class Inital {
public static void main(String[] args) {
Circle circle = new Circle();
circle.setR(1f);
circle.area();
circle.perimeter();
}
}