/*
匿名内部类:
语法定义格式:
new 抽象类/接口(){
//要重写的方法
}
*/
abstract class Demo1{
public abstract void fun1();
// public abstract void fun2();
}
//class XXX extends Demo1{
// @Override
// public void fun1() {
// System.out.println("hello world");
// }
//}
//
//class Demo1Zi2 extends Demo1{
// @Override
// public void fun1() {
// System.out.println("魏一民真帅");
// }
//}
class Student1{
public void show1(Demo1 demo1){
demo1.fun1();
}
}
public class NiMingClassDemo1 {
public static void main(String[] args) {
Student1 student1 = new Student1();
// student1.show1(new Demo1Zi());
// student1.show1(new Demo1Zi2());
/**
* 相当于jvm给我们做了几件事情
* 1、jvm底层自己造了一个类继承抽象类或者实现接口,这个类没有名字
* 2、重写的方法(实现的方法),我们只需要关注重写的方法
* 3、将这个类的对象造出来
*/
student1.show1(new Demo1() {
@Override
public void fun1() {
System.out.println("hello world");
}
});
student1.show1(new Demo1() {
@Override
public void fun1() {
System.out.println("魏一民真帅");
}
});
}
}