今天老师讲到了匿名内部类,真的解决了困扰我多年的"那啥".讲的真的是通俗易懂,什么是匿名内部类,它不是一个类,而是一个对象-匿名子类对象.当遇到传参的参数是抽象类型咋办,抽象类无法实例化,这时使用多态,传一个子类对象给父类引用可以吧(向上转型),一方面可以创建一个抽象类的继承子类来实现,但是更方便的是使用匿名子类对象,代码如下:
- class Demo {
- public static void main(String[] args) {
- new PersonDemo().method(new Person(){
- public void show(){
- System.out.println("匿名子类对象");
- }
- });
- }
- }
- abstract class Person {
- public abstract void show();
- }
- class PersonDemo {
- public void method(Person p){
- System.out.println("如何调用形参为抽象类的成员方法?");
- }
- }
复制代码 |
|