Java修饰符abstract,static,final的区别

 

注意:有抽象方法的类必定是抽象类。可是抽象类中不必定都是抽象方法,也能够全是具体方法。
abstract修饰符在修饰类时必须放在类名前。
安全

abstract修饰方法就是要求其子类覆盖(实现)这个方法。调用时能够以多态方式调用子类覆盖(实现)后的方法,也就是说抽象方法必须在其子类中实现,除非子类自己也是抽象类。spa

注意:父类是抽象类,其中有抽象方法,那么子类继承父类,并把父类中的全部抽象方法都实现(覆盖)了,子类才有建立对象的实例的能力,不然子类也必须是抽象类。抽象类中能够有构造方法,是子类在构造子类对象时须要调用的父类(抽象类)的构造方法。对象

final和abstract,private和abstract,static和abstract,这些是不能放在一块儿的修饰符,由于 abstract修饰的方法是必须在其子类中实现(覆盖),才能以多态方式调用,以上修饰符在修饰方法时期子类都覆盖不了这个方法,final是不能够覆 盖,private是不可以继承到子类,因此也就不能覆盖,static是能够覆盖的,可是在调用时会调用编译时类型的方法,由于调用的是父类的方法,而 父类的方法又是抽象的方法,又不可以调用,因此上的修饰符不能放在一块儿。继承

抽象(abstract)方法表明了某种标准,定义标准,定义功能,在子类中去实现功能(子类继承了父类并须要给出从父类继承的抽象方法的实现)。
方法一时间想不到怎么被实现,或有意要子类去实现而定义某种标准,这个方法能够被定义为抽象。(abstract)编译

模板方法模式
用abstract把制订标准和实现标准分开,制定的标准就是模板,实现就是按模板标准来 实现,也就是继承模板,实现模板中相应功能的方法。模板中不容许修改的方法能够用fianl来修饰,这个方法不能使抽象方法,为保证安全,封装,把模板中 不公开的部分用protected(保护)修饰。模板

相关文章
相关标签/搜索