JAVA内部类:匿名内部类

比较常用到的内部类就是匿名内部类,它是局部内部类的一种

定义匿名内部类有两个含义

1. 临时定义某一个类的子类(匿名内部类先决条件:要么有继承关系,要么实现接口)

2. 定义后即刻创建定个子类的对象。

一句话:

匿名内部类就是将 子类的定义、new对象、方法调用一步完成

(或将接口的实现类的定义 new对象、重写方法、调用方法一步完成)

public class Fu{

  public abstract void eat(); //抽象方法

}

//用匿名内部类实现 一步到位继承、实例化、重写方法、调用方法

new Fu(){

  public void eat(){

    System.out.println("吃了");

  }

}; //到此,实际上是已经创建了一个匿名子类对象了,这个子类对象已经重写了父类的抽象方法

new Fu(){

  public void eat(){

    System.out.println("吃了");

  }

}.eat();

//不但创建了一个子类来继承父类、重写方法,还实例化了一个匿名对象,并用该对象调用了方法。

---------------如果按普通的操作方法---------------

首先定义一个子类来继承父类:

public class Zi extends Fu{

  //重写父类抽象方法

  public void eat(){

    System.out.println("吃了");

  }

}

第二步,在main方法中实例化子类,并调用方法:

Zi z = new Zi();

z.eat();

总结:匿名内部类可以大量节省代码量,但使用匿名内部类有两个前提条件:必须要继承关系或有实现接口的关系。

posted on 2018-06-04 04:03  adamal  阅读(102)  评论(0)    收藏  举报