1.可以修饰的结构:类,方法
2.abstract修饰类:抽象类
此类不能实例化
仍然有构造器,便于子类对象实例化时调用
开发中都会提供抽象类的子类,让子类的对象实例化,完成相关操作
3.abstract修饰方法:抽象方法
抽象方法只有方法的声明,没有方法体
包含抽象方法的类一定是一个抽象类,不过抽象类中是可以没有抽象方法的
子类重写了父类中所有的抽象方法后,此子类方可实例化.
若子类没有重写父类中所有的抽象方法,则此子类也是一个抽象类(需要用abstract修饰下)
- abstract使用上的注意点:
不能修饰:属性,构造器等机构
abstract不能用来修饰私有方法、静态方法、final方法、final类
- 代码举例:
abstract class Person{
String name;
int age;
public Person() {}
public abstract void eat() ;
public void walk() {
System.out.println("走路");
}
}
class Student extends Person{
public Student (String name,int age) {
super(name, age);
}
@Override
public void eat() {
// TODO Auto-generated method stub
System.out.println("student should eat more");
}
}