Java高级特性之继承一个内部类

来源:互联网 发布:手机淘宝账号在哪里 编辑:程序博客网 时间:2024/05/16 14:18
package three.day.newcharacter;


class ClassDemo//定义一个外部类
{
public int x=0;
public int y=0;
public ClassDemo()//显式写出默认构造方法
{

}
public ClassDemo(int x,int y)//带参数的构造方法
{
this.x=x;
this.y=y;
}
public class InnerClass//定义内置类
{
public int x=0;//定义与外部类同名的整型变量x,y
public int y=0;
public InnerClass()//显式写出默认构造方法
{

}
public InnerClass(int x,int y)//带参数的构造方法
{
this.x=x;
this.y=y;
}
public void OutPut()//成员方法
{
System.out.println("----------output OuterClass------------");
System.out.println("ClassDemo:"+"this.x="+ClassDemo.this.x+"this.y="+ClassDemo.this.y);//调用外部类的数据成员,注意其调用方法
System.out.println("----------output InnerClass------------");
System.out.println("InnerClass:"+"this.x="+this.x+"this.y="+this.y);//调用内部类的数据成员,注意其调用方法
}
}
public void ShowDemo(int x,int y)//成员方法
{
this.x=x;
this.y=y;
System.out.println("----------ClassDemo---ShowDemo()------------");
System.out.println("ClassDemo:"+"this.x="+this.x+"this.y="+this.y);
}
}
public class InheritanceFromInnerClass  extends ClassDemo.InnerClass //定义主类,并继承了内部类,注意其继承方法
{
public static int x=0;//定义静态数据成员x,y
public static int y=0;
public static void output()//定义静态成员方法
{
System.out.println("---------InheritanceFromInnerClass---output---------");
for(int i=0;i<5;i++)//循环输出
{
   System.out.println("x="+(InheritanceFromInnerClass.x++)+"y="+(InheritanceFromInnerClass.y++));
}
}
public InheritanceFromInnerClass(ClassDemo cd)
{
cd.super();//外部类对象存在了,才能new内部类
}
public static void main(String[] args)
{
ClassDemo cd1 = new ClassDemo();//定义外部类对象
ClassDemo.InnerClass ic1 = cd1.new InnerClass();//定义内部类对象,注意其定义方法,必须先定义定义外部类对象,内部类才具有可见性

cd1.ShowDemo(10, 10);//调用ClassDemo的成员方法
ic1.OutPut();//调用InnerClass的成员方法

output();//调用主类InheritanceFromInnerClass的成员方法
}
}
原创粉丝点击