Java复习笔记---小随笔---匿名内部类

这几天学android开发是看到了匿名内部类的使用,感觉有点陌生了回来复习下。

有时候我们需要继承一个类或实现一个接口但只使用一次却要将这个类重写一遍感觉有点浪费,那么这个时候匿名内部类就能派上大用场了;

正常怎么去继承并使用一个类

package cn.demail;
public class Test{
	public static void main(String[] args) {
		HomePig homePig=new HomePig();
		homePig.eat();
	}

}
abstract class Pig{
	public abstract void eat();
}
class HomePig{
	public void eat(){
		 System.out.println("吃吃吃。。。");
	}
}
输出结果自然是“吃吃吃。。。”

使用匿名内部类去继承并使用一个类

package cn.demail;
public class AnonymousInnerClasses{
	public static void main(String[] args) {
		Cat cat=new Cat(){
			public void out(){
				System.out.println("这是一个匿名内部类---继承Cat抽象类");
			}
		};
		cat.out();
		Dog dog=new Dog(){
			public void out(){
				System.out.println("这是一个匿名内部类---继承Dog类");
			}
		};
		dog.out();
	}
}
abstract class Cat {
	public abstract void out();
}
class Dog {
	public void out(){
	
	}
}
不管是抽象类还是普通类都可以使用匿名内部类的方式去继承使用;

输出结果自然是:

        “这是一个匿名内部类---继承Cat抽象类”
        “这是一个匿名内部类---继承Dog类”

使用匿名内部类去实现并使用一个接口

package cn.demail;
public class AnonymousInnerClasses{
	public static void main(String[] args) {
		Bird bird=new Bird(){
			public void out(){
				System.out.println("这是一个匿名内部类---实现Pig接口");
			}
		};
		bird.out();
	}
}
interface Bird{
	public void out();
}

其实匿名内部类可以在很多地方使用比如你要新建一条线程时就可以使用匿名内部类而不需要重新写一个类再继承Thread。

你可能感兴趣的:(java)