IT培训网 - IT职场人学IT技术上IT培训网
Java编程语言之匿名内部类
时间:2016-08-04 18:24:23 来源:Java培训网 作者:IT培训网 已有:名学员访问该课程
今天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作为高薪的职业,学好则前途无忧,否则只能碌碌无为。
- 上一篇:Java编程语言之成员式内部类
- 下一篇:Java编程语言之局部内部类