1 public class DemoClass4AnonymousClass {
2 public static void main(String[] args) {
3 //TODO 匿名类
4 /*
5 * 在某种场合下,类的名字不重要,我们指向使用类中的方法或功能,那么我们此时使用特殊的语法:匿名类
6 * 所谓的匿名类,就是没有具体名字的类(接口和抽象类除外)
7 * 通过抽象类和接口来实现匿名类
8 * */
9 Me m = new Me();
10 m.say(new Wangwu());
11 m.say(new Zhaoliu());
12
13 //抽象类-来实现匿名类的写法
14 m.say(new Person() {
15 public String getName() {
16 return "zhangsan";
17 }
18 });
19
20 //接口-实现匿名累的写法
21 new Bird().doFlay();
22 //不关心什么飞,只关系飞
23 new Flay(){
24 public void doFlay() {
25 System.out.println("人开飞机 飞翔一下");
26 }
27 }.doFlay();
28 }
29 }
30
31 abstract class Person{
32 public abstract String getName();
33 }
34
35 class Me{
36 public void say(Person person){
37 System.out.println("Hello "+ person.getName());
38 }
39 }
40
41 class Wangwu extends Person{
42 public String getName(){
43 return "Wangwu";
44 }
45 }
46
47 class Zhaoliu extends Person{
48 public String getName(){
49 return "Zhaoliu";
50 }
51 }
52
53 interface Flay{
54 public void doFlay();
55 }
56
57 class Bird implements Flay{
58 public void doFlay(){
59 System.out.println("Bird 飞翔一下");
60 }
61 }