匿名内部类day10

/*
    匿名内部类:
        语法定义格式:
            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("魏一民真帅");
            }
        });

    }
}
posted @ 2024-08-06 21:26  ていせい  阅读(2)  评论(0编辑  收藏  举报