试图理解Java中的访问修饰符
刚才有一个关于Java中访问修饰符的问题。所以我认为默认方法不能被类继承,除非在同一个目录中,但是为什么“myfunc()”会在这个文件中被继承呢试图理解Java中的访问修饰符,java,object,inheritance,Java,Object,Inheritance,刚才有一个关于Java中访问修饰符的问题。所以我认为默认方法不能被类继承,除非在同一个目录中,但是为什么“myfunc()”会在这个文件中被继承呢 package com.daniel.oops.poly; 导入com.daniel.oops.poly2.B; 公共班机{ 公共静态void main(字符串[]args){ A对象=新B(); bobject.myfunc(); } } package com.daniel.oops.poly; 公共A类{ void myfunc(){ Sys
package com.daniel.oops.poly;
导入com.daniel.oops.poly2.B;
公共班机{
公共静态void main(字符串[]args){
A对象=新B();
bobject.myfunc();
}
}
package com.daniel.oops.poly;
公共A类{
void myfunc(){
System.out.println(“默认函数”);
}
}
package com.daniel.oops.poly2;
导入com.daniel.oops.poly.A;
公共类B扩展了A{
}
那么Main
和A.myfunc()
在同一个包中,所以我认为myfunc()
是可见的,因为包private就是这个意思。我制作了一个表,可以帮助您理解它为什么会这样工作
Modifier Class Package Subclass World
public Y Y Y Y
protected Y Y Y N
no modifier Y Y N N
private Y N N N
“默认方法”?如果你问为什么
Main
可以调用myfunc
,这是在A
类中声明的,那是因为Main
和A
在同一个包中。太好了,我想我现在就知道了!我感谢你的帮助!太好了,我想我现在明白了!我感谢你的帮助!