关于java接口和抽象类可以用的修饰符

一:接口中可用的修饰符

1:在成员变量中,可用的修饰符有public,final,static.

2:在方法中,可用的修饰符有public,abstract.

注解:接口是一种标准,是实现java多态的一种重要机制,使用接口意味着对外暴露内部的标准,别人通过实现接口来实现它的标准,所以在接口中自然不能用protected和private这些有保护性质的修饰符。

二:抽象类中的修饰符

1、抽象类中的抽象方法(其前有abstract修饰)不能用private、static、synchronized、native访问修饰符修饰。原因如下:抽象方法没有方法体,是用来被继承的,所以不能用private修饰;static修饰的方法可以通过类名来访问该方法(即该方法的方法体),抽象方法用static修饰没有意义;使用synchronized关键字是为该方法加一个锁。。而如果该关键字修饰的方法是static方法。则使用的锁就是class变量的锁。如果是修饰类方法。则用this变量锁。但是抽象类不能实例化对象,因为该方法不是在该抽象类中实现的。是在其子类实现的。所以。锁应该归其子类所有。所以。抽象方法也就不能用synchronized关键字修饰了;native,这个东西本身就和abstract冲突,他们都是方法的声明,只是一个吧方法实现移交给子类,另一个是移交给本地操作系统。如果同时出现,就相当于即把实现移交给子类,又把实现移交给本地操作系统,那到底谁来实现具体方法呢?

问候不一定要慎重其事,但一定要真诚感人

关于java接口和抽象类可以用的修饰符

相关文章:

你感兴趣的文章:

标签云: