protected方法类型和final的字段类型

interface MyInterFalce
{
	public void open();
}
class BasicObject
{
	// protected类型是希望它的子类可以重写或调用
	protected void method1()
	{
		System.out.println("Basic Object");
	}
}
class SubObject extends BasicObject
{
	public void method1()
	{
		super.method1();
		System.out.println("Sub Object");
	}
}
public class FinalObject
{
	public SubObject subObject = null;
	public static FinalObject finalObject = null;

	public FinalObject(SubObject subObject)
	{
		this.subObject = subObject;
	}

	public static void main(String[] args)
	{
		String name = "name";
		finalObject = new FinalObject(new SubObject());
		finalObject.subObject.method1();
		finalObject.toOpen(name);
	}

	public void invoke(MyInterFalce my)
	{
		my.open();
	}

	public void toOpen(final String name)
	{
		finalObject.invoke(new MyInterFalce()
		{
			public void open()
			{
				System.out.println(name);
			}
		});
	}
}

你可能感兴趣的:(protected方法类型和final的字段类型)