Test.java:
package cn.xxx.demo;
public class Test {
public static void main(String[] args) {
//使用匿名内部类 (定义在方法中就是内部类)
/*
* 定义实现类,重写方法,创建实现类对象,一步搞定
* 格式:
* new 接口或者父类(){ // 通过{}完成匿名类的定义
* 重写抽象方法
* }; // 可以在}后直接调用匿名对象的方法。
* 从 new开始,到分号结束
* 创建了接口的实现类的对象
*/
new Smoking(){ // 实例化匿名内部类的同时实现接口的抽象方法,同时调用匿名对象的方法。
public void smoking(){ // 同时实现接口的抽象方法(相当于定义匿名实现类)
System.out.println("人在吸烟");
}
}.smoking(); // 同时调用对象方法。
}
}
Smoking.java(接口、父类):
package cn.xxx.demo;
public interface Smoking {
public abstract void smoking();
}
/*
* 实现类,实现接口 重写接口抽象方法,创建实现类对象
* class XXX implements Smoking{
* public void smoking(){
*
* }
* }
* XXX x = new XXX();
* x.smoking();
* Smoking s = new XXX();
* s.smoking();
*
* 匿名内部类,简化问题: 定义实现类,重写方法,建立实现类对象,合为一步完成
*/