Java內部類和匿名內部類
阿新 • • 發佈:2020-12-23
一、內部類
內部類特徵:內部類當中可以呼叫外部類當中的屬性和方法,而外部類卻不能呼叫內部類當中的。
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