diff --git a/day11/src/com/inmind/noname_innercalss04/Demo07.java b/day11/src/com/inmind/noname_innercalss04/Demo07.java new file mode 100644 index 0000000..930f918 --- /dev/null +++ b/day11/src/com/inmind/noname_innercalss04/Demo07.java @@ -0,0 +1,45 @@ +package com.inmind.noname_innercalss04; +/* +匿名内部类:定义在类中的一个没有名字的类 + +我们在使用接口时,能否不定义实现类,就直接创建出对应的接口的实现类对象 + +匿名内部类 :是内部类的简化写法。它的本质是一个带具体实现的 父类或者父接口的 匿名的 子类对象。 + + +匿名内部类的定义: +{ + String name; + @Override + public void method() { + System.out.println("匿名内部类的method方法执行了"); + } +}; + */ +public class Demo07 { + public static void main(String[] args) { + /*//1.普通的接口实现类的使用 + MyInterfaceImpl impl = new MyInterfaceImpl(); + impl.method(); + //2.多态:父类引用指向子类对象 + MyInterface impl1 = new MyInterfaceImpl(); + impl1.method();*/ + /* + 当我们只需要定义出一个接口或者父类的子类,并且该子类只需要使用一次时, + 能不能省略掉MyInterfaceImpl实现类的定义,直接使用接口或父类的匿名内部类 + 当前就是匿名内部类的定义和对象的创建过程 + */ + //3.接口的匿名内部类的写法: + MyInterface impl2 = new MyInterface(){ + @Override + public void method() { + System.out.println("匿名内部类的method方法"); + } + }; + impl2.method(); + + //4.抽象父类的匿名内部类写法 + + //5.普通父类的匿名内部类写法 + } +} diff --git a/day11/src/com/inmind/noname_innercalss04/MyInterface.java b/day11/src/com/inmind/noname_innercalss04/MyInterface.java new file mode 100644 index 0000000..977e3c7 --- /dev/null +++ b/day11/src/com/inmind/noname_innercalss04/MyInterface.java @@ -0,0 +1,5 @@ +package com.inmind.noname_innercalss04; + +public interface MyInterface { + void method(); +}