修饰作用关键字,“抽象的”。
1.修饰类时,该类不可被实例化。
2.修饰方法时,该方法所在类必须也是抽象类。
3.抽象类里可以没有方法,但是抽象方法所在的类必须是抽象类。
4.抽象类的子类必须实现抽象类中所有的抽象方法。
5.abstract关键字不能与private/final/static同时出现。
具体解释见案例注释。
abstract class Person{
String name ;
public abstract void sleep();
}
class Teacher extends Person{
public void sleep(){
System.out.println(name+"is sleeping.");
}
}
/*
反例:
class Student extends Person{ //在此位置报错,Student继承Person类,但未实现sleep()方法。
Person p = new Person(); //抽象类无法被实例化。
public abstract void study(); //study()方法时抽象方法,Student类是非抽象类。
private/final/static abstract void speak(); //private私有的,无法被继承,无法被外部访问,而抽象类必须被子类继承、访问并进行实现/final最后的,修饰类时不可被继承,修饰方法时不可被子类重写/static修饰方法时,方法变为静态方法,被加载到静态数据共享区中,意味着(1)此方法必须要有方法体(2)此方法不可被重写,而abstract必然要被子类继承且实现,且不能有方法体。
}
*/