不能用来修饰interface修饰的方法
不能用来修饰interface的有( )(仅限外部接口)
正确答案: A C D
A private
B public
C protected
D static
解析:
1、抽象类中的抽象方法(其前有abstract修饰)不能用private、static、synchronized、native访问修饰符修饰。原因如下:抽象方法没有方法体,是用来被继承的,所以不能用private修饰;static修饰的方法可以通过类名来访问该方法(即该方法的方法体),抽象方法用static修饰没有意义;使用synchronized关键字是为该方法加一个锁。。而如果该关键字修饰的方法是static方法。则使用的锁就是class变量的锁。如果是修饰类方法。则用this变量锁。但是抽象类不能实例化对象,因为该方法不是在该抽象类中实现的。是在其子类实现的。所以。锁应该归其子类所有。所以。抽象方法也就不能用synchronized关键字修饰了;native,这个东西本身就和abstract冲突,他们都是方法的声明,只是一个吧方法实现移交给子类,另一个是移交给本地操作系统。如果同时出现,就相当于即把实现移交给子类,又把实现移交给本地操作系统,那到底谁来实现具体方法呢?
2、接口是一种特殊的抽象类,接口中的方法全部是抽象方法(但其前的abstract可以省略),所以抽象类中的抽象方法不能用的访问修饰符这里也不能用。而且protected访问修饰符也不能使用,因为接口可以让所有的类去实现(非继承),不只是其子类,但是要用public去修饰。接口可以去继承一个已有的接口。
题考察修饰符,函数定义等,故从网上搜罗了下相关资料,总结如下:
类的修饰符整合
一.类
类的修饰符:
Public:可以在其他任何类中使用,默认为统一包下的任意类。
Abstract:抽象类,不能被实例化,可以包含抽象方法,抽象方法没有被实现,无具体功能,只能衍生子类。
Final:不能被继承。
二.变量
变量修饰符:
一个类的成员变量的声明必须在类体中,而不能在方法中,方法中声明的是局部变量。
可访问修饰符:
static:类变量:一个类所拥有的变量,不是类的每个实例有的变量。类变量是指不管类创建了多少对象,系统仅在第一次调用类的时候为类变量分配内存,所有对象共享该类的类变量,因此可以通过类本身或者某个对象来访问类变量。
final:常量。
volatile:声明一个可能同时被并存运行的几个线程所控制和修改的变量。
实例变量:和类变量对应,即每个对象都拥有各自独立的实例变量。
三.方法:(和变量对象分为实例方法和类方法,并用有无static修饰区别)
类方法:使用static关键字说明的方法
1.第一次调用含类方法的类是,系统只为该类创建一个版本,这个版本被该类和该类的所有实例共享。
2.类方法只能操作类变量,不能访问实例变量。类方法可以在类中被调用,不必创建实例来调用,当然也可以通过对象来调用。
实例方法:实例方法可以对当前对象的实例变量操作,而且可以访问类变量。
方法可以重载,要求:方法名相同,但是参数必须有区别。(参数不同可以使类型不同,顺序不同,个数不同)
方法的返回类型:若无返回类型,则声明为void.
方法中的变量作用域:
成员变量:整个类。
局部变量:定义起到方法块结束为止。
方法参数:整个方法或者构造方法。
异常处理参数:参数传递给异常处理方法。
构造方法:和类同名的方法。为新建对象开辟内存空间后,用于初始化新建的对象。不能用对象显式的调用。
静态初始化器:格式:static{<赋值语句组>}
不能用来修饰interface修饰的方法相关推荐
- 【Android 安全】DEX 加密 ( Proguard keep 用法 | Proguard 默认混淆结果 | 保留类及成员混淆结果 | 保留注解以及被注解修饰的类/成员/方法 )
文章目录 一.Proguard 默认混淆结果 二.Proguard 保留类及成员混淆结果 三.Proguard 保留注解以及被注解修饰的类/成员/方法 更多 ProGuard 混淆配置参考 : htt ...
- 不能用来修饰interface的有
不能用来修饰interface的有( )(仅限外部接口) 题目:不能用来修饰interface的有( )(仅限外部接口) A private B public C protected D static ...
- python @修饰符_python函数修饰符@的使用方法解析
python函数修饰符@的作用是为现有函数增加额外的功能,常用于插入日志.性能测试.事务处理等等. 创建函数修饰符的规则: (1)修饰符是一个函数 (2)修饰符取被修饰函数为参数 (3)修饰符返回一个 ...
- JavaSE——面向对象进阶(封装、this、static、代码块、包、权限修饰符、main方法详解)
第2节 面向对象进阶 一.封装与private 概述: 封装的意义在于保护或者防止代码(数据)被我们无意中破坏.保护成员属性,不让类以外的程序直接访问和修改. 封装原则: 隐藏对象的属性和实现细节,仅 ...
- java static 修饰变量吗_Java面试 - static 修饰的变量和方法有哪些特点?
1.static修饰的变量和方法,在类加载时即被初始化,可直接通过类名.变量名和类型.方法名进行调用. 2.static修饰的变量,在类加载时会被分配到数据区的方法区.类的实例可共享方法区中的变量.如 ...
- 接口interface修饰符相关问题总结
1.抽象类中的抽象方法(其前有abstract修饰)不能用private.static.synchronized.native访问修饰符修饰. 原因如下: 抽象方法没有方法体,是用来被继承的,所以不能 ...
- python修饰符的理解_python函数修饰符@的使用方法解析
这篇文章主要介绍了python函数修饰符@的使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 python函数修饰符@的作用是为现有函数增 ...
- java默认修饰符_java默认方法的修饰符是什么
默认什么都不加,就是default(不用把default写出来). 意思就是只能由跟这个类在同一个包中的类来访问,比private限制更少,但比protected限制更多.' Java访问修饰符包括p ...
- java 修饰_Java 修饰符
摘录自http://www.runoob.com/java/java-modifier-types.html Java 修饰符 Java语言提供了很多修饰符,主要分为以下两类: 访问修饰符 非访问修饰 ...
最新文章
- LSTM 为何如此有效?这五个秘密是你要知道的
- 1.在Linux下如何使用软盘、光盘以及DOS等非Linux分区
- PAT——个位数统计(1021)
- python巡检脚本juniper_python实现巡检系统(solaris)示例
- python类型转换异常捕捉_Java中的异常
- 用高精度方法计算n! ,并显示n!(阶乘)的值。
- django ORM创建数据库方法
- java jframe tab_java Swing实现选项卡功能(JTabbedPane)实例代码
- 跳转后退_羽毛球后退步法常见问题及解决方法
- access mysql 升迁_随说秋色园从Access升迁到MSSQL过程
- 田逸:坎坷IT路 从机修工到系统管理高手『英雄故事』
- Electron实现桌面日历
- 如何压缩PDF文件的大小
- Scrapy 爬取阳光热线问政平台存储为json 文件(使用 CrawlSpider)
- 服务器是计算机硬件嘛,什么是服务器,服务器是软件还是硬件?
- uniapp中app分享小程序方法
- Aho-Corasick 多模式匹配算法、AC自动机详解
- CSS3 文字与字体相关样式
- vim配置即.vimrc文件的配置及vim操作技巧
- 关于20年吉林电赛D题硬件电路的分享