课程
/后端开发
/Java
/Java入门第二季 升级版
子类可以和父类不在同一个包中吗?怎么实现
2018-11-12
源自:Java入门第二季 升级版 7-3
正在回答
public 全局
protected 本包 本类 不同包子类
default 本包 本类 (缺省修饰符)
private 本类
子类和父类不一定是同包,后面学了继承,你就知道了
是不是子类跟在不在同一个包没有关系,子类是通过在类名后+关键字extends来确定关系的。
子类不一定在同包下
private :只能本类可以使用;
无修饰符的默认 :本类、本包下其他类可以使用(不同包的子类以及其他包的类);
protected :本类、本包下其他类以及本包的子类都可以使用;
public :本项目下所有的包中的所有的类都可以访问使用。
就是说子类有可能在其他的包中 !所以说是不行的
首先你要搞清楚四个访问修饰符的作用范围
默认的访问修饰符,作用范围:本类,同包中。
受保护的作用范围:本类,同包中,子孙类。
如果,子类和父类在同一个包中,父类的访问修饰符即使是默认的,在子类中也可以调用。
但是,子类和父类不在一个包中,父类的访问权限就要大于默认的。否则代码还没编写完就报红叉叉了。
并且当你打算使某类作为父类来使用的话,最好是用protected。这是专为基类使用的访问修饰符。
在子类中导入(import)父类就可以啦
举报
课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙
1 回答当父类属性的访问修饰符为默认时 子类能调用父类的属性吗?
1 回答默认的访问修饰符也可以被子类使用,课程好像讲错了
2 回答为什么程序中age属性我用了protected 修饰符 在通过在同包中的其它类不能调用 而默认的却可以调用 不是默认的安全性要高吗?
3 回答可以同时使用两个不同包下的同名类吗?
1 回答请问java中父类中final修饰的变量可以被子类重写吗