我在thinking in java 里看到了有这样个例子:
class WithInner{
class Inner{
}
}class InheritInner extends WithInner.Inner{
public InheritInner(WithInner wi){
wi.super();
}
public static void main(String[] args){
WithInner wi=new WithInner();
InheritInner ii=new InheritInner(wi);
}
}
于是自己仿照写了如下的程序:
class Outer{
private String name;
private Inner in;
public Outer(){
name="Outer";
in=new Inner("Inner");
System.out.print("It's name is ");
System.out.println(name);
}
public class Inner{
private String name;
public Inner(String name){
this.name=name;
System.out.print("My name is ");
System.out.println(name);
System.out.print("My SuzhuClass's name is ");
System.out.println(Outer.this.name);
}
}
public void display(){
System.out.println(name);
}
}class ExtendsInner extends Outer.Inner{
public ExtendsInner(Outer ot){
ot.super();
System.out.println("It is in ExtendsInner");
}
public static void main(String[] args){
Outer ot=new Outer();
ExtendsInner ei=new ExtendsInner(ot);
}
}
编译时提示在 ot.super 一句找不到符号。百思不得其解,请求各位火力支援!
class WithInner{
class Inner{
}
}class InheritInner extends WithInner.Inner{
public InheritInner(WithInner wi){
wi.super();
}
public static void main(String[] args){
WithInner wi=new WithInner();
InheritInner ii=new InheritInner(wi);
}
}
于是自己仿照写了如下的程序:
class Outer{
private String name;
private Inner in;
public Outer(){
name="Outer";
in=new Inner("Inner");
System.out.print("It's name is ");
System.out.println(name);
}
public class Inner{
private String name;
public Inner(String name){
this.name=name;
System.out.print("My name is ");
System.out.println(name);
System.out.print("My SuzhuClass's name is ");
System.out.println(Outer.this.name);
}
}
public void display(){
System.out.println(name);
}
}class ExtendsInner extends Outer.Inner{
public ExtendsInner(Outer ot){
ot.super();
System.out.println("It is in ExtendsInner");
}
public static void main(String[] args){
Outer ot=new Outer();
ExtendsInner ei=new ExtendsInner(ot);
}
}
编译时提示在 ot.super 一句找不到符号。百思不得其解,请求各位火力支援!
class Outer
{
private String name;
private Inner in;
public Outer()
{
name="Outer";
in=new Inner("Inner");
System.out.print("It's name is ");
System.out.println(name);
}
public class Inner
{
private String name;
public Inner()\\加上这个,编译通过
{
}
public Inner(String name)
{
this.name=name;
System.out.print("My name is ");
System.out.println(name);
System.out.print("My SuzhuClass's name is ");
System.out.println(Outer.this.name);
}
}
public void display()
{
System.out.println(name);
}
}class ExtendsInner extends Outer.Inner
{
public ExtendsInner(Outer ot)
{
ot.super();
System.out.println("It is in ExtendsInner");
}
public static void main(String[] args)
{
Outer ot=new Outer();
ExtendsInner ei=new ExtendsInner(ot);
}
}