概述:
如果是普通的类,必须去实现接口里所有的方法,如果是抽象类,则可以不去实现
如果子类是抽象类,则可以不实现接口中的所有方法,因为抽象类中允许有抽象方法的存在!
.Java中抽象类就是使用abstract关键字修饰的一种特殊的类,抽象类可以不去实现接口的抽象方法,可以由继承这个抽象类的子类去实现。
抽象类不能实例化,不能直接创建对象。抽象类是用来被继承的,继承抽象类的子类必须重写父类所有的抽象方法。否则,该子类也必须声明为抽象类,使用 abstract 关键字修饰
抽象方法不能用private、final、static、native修饰
我们只定义静态static方法完全OK,因为静态方法是属于类的,所以静态方法必须满足给类调用,如果通过类无法调用,那么这种静态方法肯定是不对的。
为了达到这一要求,static方法就必须有方法体,即已经实现了,也就不是抽象方法了。所以静态(static)方法不能是抽象方法,
即abstract不能与static同时修饰方法。即没有类抽象方法
abstract修饰的类需要被子类继承,abstract修饰的方法需要子类重写,但是final修饰的类不能被继承,final修饰的方法也不能被子类重写。
因为abstract修饰的方法必须通过子类重写才有效,而private修饰的方法对子类不可见,
即父类中如果存在private abstract void out();而子类中有private void out(){},
则它们是两个不同的方法,子类中的out方法不是对父类的重写,而是属于子类独有的方法。