Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
试图理解Java中的访问修饰符_Java_Object_Inheritance - Fatal编程技术网

试图理解Java中的访问修饰符

试图理解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

刚才有一个关于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(){
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
在同一个包中。太好了,我想我现在就知道了!我感谢你的帮助!太好了,我想我现在明白了!我感谢你的帮助!