类默认构造函数的访问权限

package pkg1;
public interface Interface {...}

package pkg2;
import pkg1.*;
public class Base {
protected class BaseInner implements Interface{
//(1)
public BaseInner() {}
...
}
}


package pkg3;
import pkg1.*;
import pkg2.*;
public class SomeClass extends Base {
Interface getBaseInner() {
//(2)
return this.new BaseInner();
}
...
}

1、如果不定义构造方法,则编译器自动生成与类的访问权限相同的默认构造方法。
2、除了内部类,类的访问权限不能设置成protected或是private的。
3、我先前的代码中(1)处若不写public,则会认为构造器是protected的,也就是说构造器只能被BaseInner的子类所调用,而(2)所处的类并不是BaseInner的子类,所以会出现不可见的错误。没有理解好访问权限的意义是问题出现
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值