今天学到匿名内部类的章节,觉得有点儿吃力,在老师案例的基础上,把内部类和匿名内部类做对比,掌握匿名内部类的特性和实质
- /*
- * A:匿名内部类
- * 就是内部类的简化写法。
- * B:前提:存在一个类或者接口
- * 这里的类可以是具体类也可以是抽象类。
- * C:格式:new 类名(继承)或者接口(实现)名(){
- 重写方法;
- }
- * D:本质是什么呢?
- * 是一个继承了该类或者实现了该接口的子类匿名对象。
- * E:案例演示
- * 按照要求来一个匿名内部类
- 两种实现方式:内部类、匿名内部类,下面分别使用两种方式,并进行对比
- */
- class Demo1_NoNameInnerClass {
- public static void main(String[] args) {
- Outer o = new Outer();
- o.method();
- Outer1 o1 = new Outer1();
- o1.method();
- }
- }
- interface Inter {
- public void print();
- }
- class Outer { //内部类来实现
- class Inner implements Inter {
- public void print() {
- System.out.println("print");
- }
- }
- public void method(){
- Inner i = new Inner();
- i.print();
- }
- }
- class Outer1 { //匿名内部类来实现
- public void method() {
- new Inter() { //实现Inter接口
- public void print() { //重写抽象方法 相当于: class Inner implements Inter
- System.out.println("print");
- }
- }.print();
- }
- }
复制代码
|