Tag: protected

为什么我不能在包外使用受保护的构造函数?

为什么我不能在包之外使用受保护的构造函数来获取这段代码: package code; public class Example{ protected Example(){} … } Check.java package test; public class Check extends Example { void m1() { Example ex=new Example(); //compilation error } } 为什么即使我延长了课程,我也会得到错误? 请解释 编辑: 编译错误: 构造函数Example()不可见

受保护的修饰符是什么意思?

我正在阅读“Java编程语言”第3版 。 在第3.5章中,它使用以下单词说明了protected修饰符: 更确切地说,除了可以在类本身内访问以及在同一个包中编码之外,还可以通过对象引用从类访问受保护的成员,该对象引用至少与类的类型相同,类的类型的引用或其中一个亚型。 这两个方面让我感到困惑: 1.受保护的成员可以通过同一个包中的代码访问吗? 之前我所知道的是受保护的成员只能通过子类访问… 2.我不明白a protected member can also be accessed from …意思是,任何人都可以向我解释一下吗?

Java中的受保护的访问修饰符

我在理解java中的受保护访问修饰符(或其背后的设计)时遇到了一些麻烦。 我认为这意味着包访问和访问通过inheritance包含抽象成员的类的对象。 我写了以下示例代码。 我看到如果取消注释,注释掉的行会产生编译错误。 为什么我可以通过Second中的Second对象访问pro,但不能通过Second中的First对象访问pro? package first; public class First { protected void pro(){ System.out.println(“Can see protected method”); } } package first; public class InFirst { public static void main(String[] args){ First fst = new First(); fst.pro(); } } package second; import first.First; public class Second extends First { public static void main(String[] args){ First […]

Java中的public,protected,package-private和private有什么区别?

在Java中,是否有明确的规则来确定何时使用每个访问修饰符,即默认(包私有), public , protected和private ,同时创建class和interface以及处理inheritance?