java中的匿名类

public class TestAnonymous {
//匿名内部类就是重写父类或接口的方法。
//内部类能够访问外部内的一切成员变量和方法,包括私有的,而实现接口或继承类做不到
// 匿名内部类是没有名字的,所以我们没办法获得其类型,而只能把它当作超类或接口类型来使用。
/*匿名类的实现方式:
	1:继承一个类,重写其方法
	2:实现一个接口,可以是多个
*/
	/*
   1: 匿名内部类的注意事项:注意匿名类的声明是在编译时进行的,实例化在运行时进行。这意味着for循环中的一个new语句会创建相同匿名类的几个实例,而不是创建几个不同匿名类的一个实例。
   2:在使用匿名内部类时,要记住以下几个原则:
 ·匿名内部类不能有构造方法。  
 ·匿名内部类不能定义任何静态成员、方法和类。  
 ·匿名内部类不能是public,protected,private,static。  
 ·只能创建匿名内部类的一个实例。
  ·一个匿名内部类一定是在new的后面,用其隐含实现一个接口或实现一个类。  
 ·因匿名内部类为局部内部类,所以局部内部类的所有限制都对其生效。
  ·静态内部类只能访问外部类的静态变量或静态方法。
	 */
	/*
	Java的内部类和C++中的嵌套类有本质的不同:
	C++的嵌套类没有指向包装类的句柄。仅仅表达一个封装的概念;
	但是Java的内部类不同,它可以访问包装类的成员(这表示它拥有指向包装类的句柄)
	*/
	public static void main(String[] args) {
    TestAnonymous testAnonymousClass=new TestAnonymous(); 
			testAnonymousClass.show(); 
			} 
			//在这个方法中构造了一个匿名内部类 
			private void show(){ 
			Out anony=new Out(){ // 获取匿名内部类实例 
			void show(){ //重写父类的方法 
			System.out.println("this is Anonymous InterClass showing."); 
			} 
			}; 
			anony.show();// 调用其方法 
			} 
			} 
			// 已有类Out;匿名内部类通过重写其方法获得另外的实现 
			class Out{ 
			void show(){ 
			System.out.println("this is Out showing."); 
			}
			}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值