当前位置 : 首页> Java教程 > Java编程语言之匿名内部类

Java编程语言之匿名内部类

时间:2016-08-04 18:24   已访问:142次

今天IT培训网小编要介绍的就是“Java静态内部类、匿名内部类、成员式内部类和局部内部类”其中一个类方面的信息-匿名内部类希望大家可以用心学习,认真对待学习中的每个细节。

内部类:

使用内部类减少了命名冲突。

一个内部类可以定义在一个类中,一个方法中甚至一个表达式中。

内部类分为四种:

静态内部类(static inner classes)

成员内部类(member inner classes)

局部内部类(local inner classes)

匿名内部类(anonymous inner classes)

内部类可以是静态(static)的,可以使用 public、protected 和 private 访问控制符,而外部类只能使用 public,或者默认。

匿名内部类

匿名内部类是局部内部类的一种特殊形式,也就是没有变量名指向这个类的实例,而且具体的类实现会写在这个内部类里面。

注意:匿名类必须继承一个父类或实现一个接口。

不使用匿名内部类来实现抽象方法:

abstract class Person {

    public abstract void eat();

}

class Child extends Person {

    public void eat() {

        System.out.println("eat something");

    }

}

 

public class Demo {

    public static void main(String[] args) {

        Person p = new Child();

        p.eat();

    }

}

运行结果:

eat something

可以看到,我们用Child继承了Person类,然后实现了Child的一个实例,将其向上转型为Person类的引用。但是,如果此处的Child类只使用一次,那么将其编写为独立的一个类岂不是很麻烦?

这个时候就引入了匿名内部类。使用匿名内部类实现:

abstract class Person {

    public abstract void eat();

}

public class Demo {

    public static void main(String[] args){

        // 继承 Person 类

        new Person() {

            public void eat() {

                System.out.println("eat something");

            }

        }.eat();

    }

}

可以看到,匿名类继承了 Person 类并在大括号中实现了抽象类的方法。

关于“Java编程语言之匿名内部类”方面的介绍就到这里了,希望大家认真学习,Java作为高薪的职业,学好则前途无忧,否则只能碌碌无为。


推荐内容