anonymitydemo2.java

来自「这是清华大学编写的JAVA教材中所有题目的源代码!」· Java 代码 · 共 40 行

JAVA
40
字号
class Source
{
	private int x;
	public Source(int a){ x=a;}
	public int getValue(){ return x;}
	public String read(){ return "USA";}
}

class OuterClass
{
	public Source sour(int a,final String s)//方法类只能访问final自动变量
	{
		return new Source(a){	//定义一个匿名类,它由类Source派生而来
			private String country=s;//匿名类成员变量
			
			public int getValue() //匿名类成员方法覆盖了父类方法
			{  return super.getValue()+10; }//调用父类方法
			
			public String read()//匿名类成员方法覆盖了父类方法
			{ return country;}
		};//注意这里的分号是return语句的分号
	}
}
	
class Demo 
{
	public static void main(String args[])
	{
		//创建一个外部类OuterClass对象outer
		OuterClass outer=new OuterClass();
		//调用外部类OuterClass的方法sour(),返回一个新建的匿名类对象,
		//并用父类Source的引用sou指向该匿名类对象
		Source sou=outer.sour(10,"China");
		
		System.out.print("匿名类的成员变量country的值为:");
		System.out.println(sou.read());
		System.out.print("匿名类的成员方法getValue()的值为:");
		System.out.println(sou.getValue());
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?