1. 程式人生 > 其它 >Java內部類和匿名內部類

Java內部類和匿名內部類

技術標籤:java介面scala設計模式大資料

一、內部類

內部類特徵:內部類當中可以呼叫外部類當中的屬性和方法,而外部類卻不能呼叫內部類當中的。

public class A {

    private int x = 10;

    public static void main(String[] args) {
        A.B b = new A().new B();
        b.say();
    }

    class B{
        public void say() {
            hi();
            System.out.println(x*10);
        }
    }

    public void hi() {
        System.out.println("我是外部類方法hi");
    }
}

列印如下:

我是外部類方法hi
100

說明內部類可以訪問外部類的屬性和方法。

二、匿名內部類

匿名內部類可以繼承兩類資料介面

1. 抽象類

2. 介面

public abstract class A {

    public abstract void say();
}
public class B extends A {
    @Override
    public void say() {
        System.out.println("我是實現類的方法say");
    }
}
public class Test {
    public static void main(String[] args) {
// 不使用匿名內部類的呼叫方式
        A a1 = new B();
        a1.say();

// 使用匿名內部類的呼叫方式
        A a2 = new A(){
            @Override
            public void say() {
                System.out.println("我是匿名內部類的方法say");
            }
        };
        a2.say();
    }
}

列印如下:

我是實現類的方法say
我是匿名內部類的方法say