接口中同一个方法不写public,为什么在实现类中一定要写public呢?
来源:互联网 发布:java获取泛型的class 编辑:程序博客网 时间:2024/05/18 01:48
首先,接口中所有方法默认都是public,至于为什么要是public,原因在于如果不是public,那么只能在同个包下被实现,可访问权限就降低很多了,那么在实现类中,实现的类相当于子类,子类的访问权限是不能比父类小的,而在java中一个类如果没有权限的修饰符,默认是friendly(同一个包内的其它类才可访问),所以在实现类中一定要写public
补充:
访问权限 类 包 子类 其他包描述
public ∨ ∨ ∨ ∨其它楼房的人也能用我, 外星人不能用我
protect ∨ ∨ ∨ ×只有我自己和与我住在同一个楼房里的人以及我的子孙能用我
default ∨ ∨ × ×只有我自己和与我住在同一个楼房里的人能用我
private ∨ × × ×只有我自己可以用我
Java中所谓的“friendly”和“default”都只是一种说法,并不是说真有那么一个指定默认访问权限的关键字(default倒的确是个语言关键字,但那是用在switch语句中的,跟楼主的问题无关)。
Java中类的成员权限修饰符只有三个:public/private/protected。
当一个类的成员前面没有任何访问权限修饰符修饰时,我们就说他是“fiendly权限”,或者“default权限”(注意,只是这样“说”,并不是主你可以那样写上去)。这种说法指的就是那种可以从package内部或子类中访问的成员。
C++中也没有“friendly”,只有一个“friend”,但那是另一个意思。它虽然跟访问权限有点关系,但并不是一个访问权限修饰符,C++的权限修饰符也是只有那3种。而且C++默认的是private,这点也跟Java不一样。
C#倒是给另外一种“默认的”权限修饰符赋于了一个真正的语言关键字:internal。即写上internal跟不写是一个意思。
0 0
- 接口中同一个方法不写public,为什么在实现类中一定要写public呢?
- 在类中实现的接口的方法需要加上“public”关键字
- 在类中实现的接口的方法需要加上“public”关键字
- java中abstract,public,protected,private以及不写作用域的时候在继承关系中的调用
- java中作用域public private protected 以及不写的区别
- java中作用域public private protected friendly 以及不写的区别
- java中作用域public private protected 以及不写的区别
- 为什么Java成员类里面要写set、get等方法而不是直接public?
- 【Effective Java】Ch4_Class:Item14_在public类中应该使用访问方法而不是public域
- java中为什么接口中的属性和方法都默认为public?
- java 重写接口中的方法,为什么必须在前加public呢?
- Java 中如果有接口方法,子类是否一定要含有接口的实现题呢
- 为什么android源码中有的public方法,在官网会查不到并且我们也用不了?
- 为什么一个java源文件中只能有一个public类
- 为什么java源文件中只允许一个public类存在
- 关于java源文件中为什么只能有一个public类?
- 为什么一个java源文件中只能有一个public类?
- java 源文件中为什么只能有一个public类
- xposed 的编译
- eclipse调试java程序的九个技巧
- MLY翻译 -- 3.Prerequisites and Notation
- 非递归二叉树的序列打印练习
- xposed 框架创建以及初始化
- 接口中同一个方法不写public,为什么在实现类中一定要写public呢?
- Python(Pygame)事件处理
- UEFI+GPT分区 装win8 ubuntu双系统实战成功——实战机型索尼SVS15,适用所有UEFI启动的
- 【笔记整理】hashMap和hashtable的区别
- MySql高级查询语句
- Android中的冷启动与热启动
- <11>python学习笔记——json and pickle序列化
- Assigning keystrokes
- MLY翻译 -- 4.Scale drivers machine learning progress