- 抽象类可以有任意的成员【抽象类还是类】,比如:非抽象方法、构造器、静态属性……
抽象方法不能有主体,即不能实现。
abstract void say(){ };//报错!!!
如果一个类继承了抽象类,则它必须实现抽象类的所有抽象方法,除非它自己也声明为abstract类。
- 抽象方法不能使用private、final和static来修饰,因为这些关键字都是和重写相违背的。 ```java package test;
public class Detail02 { public static void main(String[] args) { System.out.println(“hello”); } }
//5.抽象类的本质还是类,所以可以有类的各种成员 abstract class D { public int n1 = 10; public static String name = “WTY2002”; public void hi() { System.out.println(“hi”); } public abstract void hello();//抽象方法 //6.抽象方法不能有主体,即不能实现。 //public abstract void say(){};//报错!!! public static void ok() {//静态方法 System.out.println(“ok”); } }
//7.如果一个类继承了抽象类,则它必须实现抽象类的所有抽象方法,除非它自己也声明为abstract类 abstract class E { public abstract void hi(); } abstract class F extends E {//继承抽象类,同时自己也声明为抽象类
} class G extends E {//要实现E中所有的抽象方法 @Override public void hi() { //这里相等于G子类实现了父类E的抽象方法,所谓实现方法,就是有方法体
}
}
//8.抽象方法不能使用private、final 和 static来修饰,因为这些关键字都是和重写相违背的 abstract class H { public abstract void hi();//抽象方法 //private abstract void hi();//报错!!! //public final abstract void hi();//报错!!! //public static abstract void hi();//报错!!! } ```