抽象类的定义:abstract class 类名{}
专门用来被继承。
语法:不可以被直接实例化,可以拥有抽象方法。
抽象方法(专门用来被重写): abstract void f();无方法体,方法头以分号结束:abssract 返回类型 方法名(参数);
相关规则:
1.抽象类可有构造函数,但不能直接创造抽象类的对象。
2.抽象方法必须放在抽象类(或接口中),抽象类中可以包含普通方法。
3.抽象类的普通子类必须实现抽象类中所有的抽象方法。
4.抽象类不能被final修饰。
public class Test {
public static void main(String[] args) {
Shape sp1=new Circle("圆",1);
Shape sp2=new Square("正方形",2);
System.out.println(sp1.name+","+sp1.area());
System.out.println(sp2.name+","+sp2.area());
}
}
abstract class Shape{
String name;
//抽象类的构造函数
public Shape(String name) {
super();
this.name=name;
}
//抽象方法
public abstract double area();
}
class Circle extends Shape {//必须实现抽象类中所有的抽象方法。
double r;
public Circle(String name,double r) {
super(name);
// TODO Auto-generated constructor stub
this.r=r;
}
@Override
public double area() {//方法重写
// TODO Auto-generated method stub
return Math.PI*r*r;
}
}
class Square extends Shape{//必须实现抽象类中所有的抽象方法。
double l;
public Square(String name,double l) {
super(name);
this.l=l;
}
public double area() {//方法重写
return l*l;
}
}



