java巢狀類和內部類、匿名類
阿新 • • 發佈:2019-01-21
4、匿名內部類
執行結果:abstract class Person { public abstract void showCareer(); } public class Teacher extends Person{ @Override public void showCareer() { System.out.println("Career is Teacher"); } } public interface Tree { void showTreeName(); } public class AnonymousInnerClass { public static void main(String[] args) { System.out.println("################# 常規"); normal(); System.out.println("################# 覆蓋父類方法"); extendsInner(); System.out.println("################# 抽象類"); abstractInner(); System.out.println("################# 介面"); interfaceInner(); } //覆蓋父類方法 private static void extendsInner() { Person person = new Teacher() { @Override public void showCareer() { System.out.println("Career is Worker"); } }; person.showCareer(); } //正常 public static void normal() { Person person = new Teacher(); person.showCareer(); } //匿名內部類 抽象類 實現 public static void abstractInner() { Person person = new Person() { @Override public void showCareer() { System.out.println("Career is lawyer"); } }; person.showCareer(); } //匿名內部類 介面 實現 public static void interfaceInner() { Tree tree = new Tree() { public void showTreeName() { System.out.println("This is Apple Tree"); } }; tree.showTreeName(); } }