关于java中继续类的权限问题的细致引见【JAVA教程】,java,继承类,权限
作者:搜教程发布时间:2019-11-30分类:JAVA教程浏览:20评论:0
在Java中有一个比较轻易疏忽的问题,那就是继续类的权限与基类的权限之间的关联。由于日常平凡在运用继续类的时刻,大概很少会需要到修正基类的接见权限控制符,而是直接运用基类的接见权限控制符。
假如基类有属性要领是private的,那末子类是不是能够修正为protected,假如是protected,那末子类是不是能够修正为public或许private呢?接下来就看一下这个问题。
相干视频教程引荐:java教授教养视频
一、基类要领为private
起首,假如基类的属性要领是private的,那末子类可否修正为protected或许public呢?答案是不是定的,这个答案略加推理就可以得出来,既然基类的属性要领是private的,那末他关于子类就不可见,既然子类都不可见,怎样还能修正基类要领的权限控制符呢。
我们能够用一段代码来考证这个问题:
/*BaseClass.java*/ public class BaseClass { private void test() {} } /*ExtendClass.java*/ public class ExtendClass extends BaseClass { //@Override protected void test() {} }
上面的代码假如将注解去掉,那末就会报错,提醒找不到要领,由于基类的要领的private的,假如去掉注解就没有问题,但此时子类的test()要领与基类的test()要领是两个完整没有关联的要领。
二、基类要领为friendly
假如基类要领为friendly,即为默许的权限,那末就分为两种状况,一种是子类与基类处于统一包内,一种是子类与基类不在统一包内。当子类与基类在统一包内的时刻,是能够将权限控制符扩大为protected或许public的:
/*BaseClass.java*/ package demo1; public class BaseClass { void test() {} } /*ExtendClass.java*/ package demo1; public class ExtendClass extends BaseClass { @Override protected void test() {} }
上述两个类都在包demo1下,代码能准确运用。然则当子类与基类不在统一包的时刻,状况就不一样了:
/*BaseClass.java*/ package demo2.demo1; public class BaseClass { void test() {} } /*ExtendClass.java*/ package demo2; public class ExtendClass extends BaseClass { //@Override protected void test() {} }
假如子类与基类不在统一包,那末就不能扩大默许权限,缘由实在与private一样,子类不能瞥见基类的要领,因而也就不能扩大要领的权限控制符。
三、基类要领为protected
假如基类的要领为protected,那末子类就可以够将接见控制符扩大为public:
/*BaseClass.java*/ package demo2.demo1; public class BaseClass { protected void test() {} } /*ExtendClass.java*/ package demo2; public class ExtendClass extends BaseClass { @Override public void test() {} }
四、总结
实在想要弄清扩大的状况很轻易,记着下面这个原则:理论上说子类是能够扩大基类的接见权限控制符,然则不能减少基类的接见权限控制符,而且仅当子类能瞥见基类的要领的时刻能够扩大。
想进修更多相干教程能够接见:java零基本入门
以上就是关于java中继续类的权限问题的细致引见的细致内容,更多请关注ki4网别的相干文章!
相关推荐
- java经典面试题集锦(五)_JAVA教程,java,面试题
- java中的换行符是什么_JAVA教程,java,换行符
- Java中变量必须先定义后使用么_JAVA教程,java,变量
- java中怎么定义接口_JAVA教程,java,接口
- java中静态代码块有什么特点_JAVA教程,java,静态代码块
- java中return语句有什么作用_JAVA教程,java,return
- Java对文件的读写操作(图文详解)_JAVA教程,java
- java经典面试题集锦(四)_JAVA教程,java,面试题
- 八种基本数据类型分别是什么?_JAVA教程,java,基本数据类型
- java如何将字符串转为数组_JAVA教程,java,字符串,数组
你 发表评论:
欢迎- JAVA教程排行
-
- 1接口中只能定义常量和抽象方法,对么_JAVA教程,接口,常量,抽象方法
- 2java文件不能删除文件怎么办_JAVA教程,java
- 3java中sleep的用法是什么?_JAVA教程,java,sleep
- 4java eclipse无法运行怎么办_JAVA教程,java
- 5java图片显示不出来怎么办_JAVA教程,java
- 6java后台乱码怎么办_JAVA教程,java
- 7javascript和java的区别是什么_JAVA教程,javascript,java
- 8Java中split()方法怎么用_JAVA教程,java,spilt,用法
- 9java生成随机数的三种方法_JAVA教程,java,随机数
- 最新文章
- 广而告之