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的子类,所以会出现不可见的错误。没有理解好访问权限的意义是问题出现
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的子类,所以会出现不可见的错误。没有理解好访问权限的意义是问题出现