当前位置: 技术问答>java相关
内隐类问题!!!
来源: 互联网 发布时间:2015-11-05
本文导语: class A{ A(int a){ System.out.println("constructing A ..."); } public void a(int aa){ System.out.println("A.a()"); } class B{ B(int b){ System.out.println("construc...
class A{
A(int a){
System.out.println("constructing A ...");
}
public void a(int aa){
System.out.println("A.a()");
}
class B{
B(int b){
System.out.println("constructing B ...");
}
public void b(int bb){
System.out.println("B.b()");
}
}
}
public class InnerC extends A.B{
InnerC(A a){//该构造函数应如何书写?
/* super(3);
a.super();
*/
System.out.println("construction InnerC ...");
}
public static void main(String[] args){
A a=new A(9);
InnerC ic=new InnerC(a);
}
}
A(int a){
System.out.println("constructing A ...");
}
public void a(int aa){
System.out.println("A.a()");
}
class B{
B(int b){
System.out.println("constructing B ...");
}
public void b(int bb){
System.out.println("B.b()");
}
}
}
public class InnerC extends A.B{
InnerC(A a){//该构造函数应如何书写?
/* super(3);
a.super();
*/
System.out.println("construction InnerC ...");
}
public static void main(String[] args){
A a=new A(9);
InnerC ic=new InnerC(a);
}
}
|
你这样做的确什么意义也没有,不过到不是不可以,下面是代码:
class A{
A(int a){
System.out.println("constructing A ...");
}
public void a(int aa){
System.out.println("A.a()");
}
class B{
B(int b){
System.out.println("constructing B ...");
}
public void b(int bb){
System.out.println("B.b()");
}
}
}
public class InnerC extends A.B{
InnerC(A a,int k){//该构造函数应如何书写?
a.super(k);
System.out.println("construction InnerC ...");
}
public static void main(String[] args){
A a=new A(9);
InnerC ic=new InnerC(a,9);
}
}
使用内部类的一个原因它有很好的安全机制,你这样做是强行打破了封装,搞不懂你有什么目的
你的上面代码的错误在于无法构建A
class A{
A(int a){
System.out.println("constructing A ...");
}
public void a(int aa){
System.out.println("A.a()");
}
class B{
B(int b){
System.out.println("constructing B ...");
}
public void b(int bb){
System.out.println("B.b()");
}
}
}
public class InnerC extends A.B{
InnerC(A a,int k){//该构造函数应如何书写?
a.super(k);
System.out.println("construction InnerC ...");
}
public static void main(String[] args){
A a=new A(9);
InnerC ic=new InnerC(a,9);
}
}
使用内部类的一个原因它有很好的安全机制,你这样做是强行打破了封装,搞不懂你有什么目的
你的上面代码的错误在于无法构建A
|
动态内部类的构造需要一个外部类的实例可以
InnerC(A a, int i){
a.super(i);
}
InnerC(A a, int i){
a.super(i);
}
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。