介绍:
(1)用abstract关键字来修饰一个类时,这个类就叫抽象类
访问修饰符 abstract 类名{}
(2)用abstract关键字来修饰一个方法时,这个方法就是抽象方法
访问修饰符 abstract 返回类型 方法名(参数列表);没有方法体
(3)抽象类的价值更多是在于设计,让子类继承并实现抽象方法
注意事项:
1.抽象类不能被实例化
public class Study {
public static void main(String[] args) {
new A();//抽象类不能实例化
}
}
abstract class A{}
2.抽象类不一定要包含abstract方法,也可以没有abstract方法
abstract class A{
public void say(){};
}
3.一旦类包含了abstract方法,则这个类必须声明为abstract
class A{//A类需要声明为abstract类
public abstract void say();
}
4.abstract只能修饰类和方法,不能修饰属性和其他的
5.抽象类可以有任意成员,如:非抽象方法,构造器,静态属性等
abstract class A{
public int n1;
public static int n2=10;
public A(int n1) {
this.n1 = n1;
}
public abstract void say();
}
6.抽象方法不能有主体,即不能实现
7.如果一个类继承了抽象类,则它必须实现抽象类的所有抽象方法,除非它自己也声明为abstract类
abstract class A{
public abstract void say();
}
class B extends A {
@Override
public void say() {
System.out.println("B的say方法");
}
}