抽象类中不能有static,final,private修饰的方法
1. 抽象类中不能有static修饰的方法。
打个比方:
- 被static修饰的方法在和没有static修饰的方法在内存中的位置不一样。。
- 被static修饰的方法属于类,是类自己的东西,不是给子类来继承的。就好像类是个房子,它的静态方法是里面的一面墙,每个人都可已在墙上画画,你画的东西别人也能看到,属于大家共同使用。你想通过继承来把这面墙拿走也不可能拿走,他是从属于类的。
- 而抽象方法本身没有实现,就是用来给子类继承,存在内存中的位置也不是一样的。用static修饰就不能被子类继承了。同样 你可以这么理解。
- 抽象方法相当于房子中地上的白纸,继承了它的子类就必须从地上拿一张白纸回去画画,你想怎么画怎么画。
- 一个相当于墙,你是拿不走的。一个相当于地上的纸,而且规定你实现了就必须拿走。
2. 抽象类中不能有final,private修饰的方法:
final修饰的类不可继承,而抽象类本事是不能被实例化的,是需要让子类去继承,如果父类使用了final修饰符修饰方法,子类继承后,也无法重写该方法。
private的访问权限是本类中,子类继承父类后,是无法方法private修饰的方法的。
所以,一个抽象类中的抽象方法是不能用static,final和private修饰的。