Java 匿名类(通俗易懂)

匿名类有两种:

1、与子类有关的匿名类

2、与接口有关的匿名类

1、与子类有关的匿名类

package com.与子类有关的匿名类;

public class Demo29 {

public static void main(String args[]) {

Test test = new Test();

Person person = new Boy();

test.test(person);

person = new Gril();

test.test(person);

test.test(new Boy());

/**

* 这里是与子类有关的匿名类的关键知识点

* 这个匿名类相当与Boy,Gril类,这个是我不需要事先定义这个类,而是我什么时候要用,什么时候写一个匿名类,这种写法代表着其子类

*/

test.test(new Person() {

@Override

void speak() {

System.out.println("与子类有关的匿名类!");

}

});

}

}

package com.与子类有关的匿名类;

public abstract class Person {

abstract void speak() ;

}

package com.与子类有关的匿名类;

public class Boy extends Person {

@Override

void speak() {

System.out.println("Boy");

}

}

package com.与子类有关的匿名类;

public class Gril extends Person{

@Override

void speak() {

System.out.println("gril");

}

}

package com.与子类有关的匿名类;

public class Test {

/**

* 这个类就是纯粹的为了使用多态

*/

void test(Person person) {

person.speak();

}

}

2、与接口有关的匿名类

只要把接口换成子类即可

猜你喜欢

转载自blog.csdn.net/qq_40990854/article/details/81067371