不同包中子类不能直接使用父类默认权限的属性
来源:互联网 发布:linux开机启动命令 编辑:程序博客网 时间:2024/05/06 15:27
package cn.com;
public class Demo2 {
return a;
}
public class Demo2 {
int a = 1; //默认权限
public int getA() {return a;
}
}
package cn;
import cn.com.Demo2;
public class Demo1 extends Demo2{
@Override //有复写
public int getA() {
return a; //此处会报错,叫你创建一个变量a,说明子类是没有权限使用父类的变量a的,可以和私有属性一样理解为子类看不到
//如果Demo1和Demo2同包,此处不会报错。
//说明了不同包,子类要直接使用父类的默认权限变量,是不行的,同包可以。
//但并不是说子类不能使用此变量,可以修改方法返回:return super.a,一样也可以访问。或者不复写getA()方法 ,子类调用getA()方法也可以拿到父 //类的a。
}
}
总结:默认权限是包访问权限,即使是别包的子类也无法直接使用,但同包任何类都可以直接访问,更不用说同包子类肯定也能访问了。
如果有所不懂,请看我另一篇文章,对父类私有变量是否被子类继承的文章,里面有子类和父类关系的详细讲解和原理图。
链接地址:http://blog.csdn.net/mr_duantao/article/details/50966471
0 0
- 不同包中子类不能直接使用父类默认权限的属性
- 子类会继承父类的私有方法和私有属性,只是不能直接访问
- JAVA——编译运行含有包层的类、同包和不同包类的相互访问、不同包子类和父类的访问权限
- 子类继承父类,但是每个子类又不能全部拥有基类的属性
- 重写(覆盖)子类的权限不能低于父类的权限
- 子类可以直接使用父类的变量、方法吗?
- 不同语言类成员的默认权限
- 子类继承父类的private成员,但是不能直接访问
- java中子类继承自父类的权限问题
- java中instanceof关键字的使用,以及子类是否继承了父类的所有属性
- 为何Java中子类重写方法的访问权限不能低于父类中权限
- 为何Java中子类重写方法的访问权限不能低于父类中权限
- 再论子类父类不同包之间访问关系
- JAVA在子类中访问父类的私有属性
- @MappedSuperclass 解决父类属性不能传递给子类
- ActivityGroup的子类中不能使用bindService的解决办法
- 为什么子类的访问权限不能低于超类的访问权限
- Java中 元素的继承,子类属性覆盖父类属性的实例
- 2.2--当用户每次创建一个新文档时,如何管理 多文档模板 而不用弹出对话框?.......包含2.6的内容
- 关于c++文件组织结构的闹心事
- php基础排序
- ATA Standards
- android Activity启动过程(二)
- 不同包中子类不能直接使用父类默认权限的属性
- 字节、字、bit、byte的关系
- 自定义ViewPager,用来解决PhotoView和ViewPager的滑动冲突
- 总结
- React-Native 学习笔记
- Linux开发初步
- driver.implicitly_wait(30)
- java语言程序设计第十版(Introduce to java 10th) 课后习题 chapter7-23
- Spring mvc 拦截器 配置详解