java中什么是匿名类及其应⽤场景_JAVA匿名类是什么,怎么
⽤??
展开全部
匿名类是⼀种特殊的内部类,它是在⼀个表达式内部包含⼀个完整的
32313133353236313431303231363533e58685e5aeb931333337616531类定义。
内部类是在⼀个类的内部嵌套定义的类,它可以是其它类的成员,也可以在⼀个语句块的内部定义,还可以在表达式内部匿名定义。
匿名类与其他类的不同就在于匿名,也就是没有名称。
Java中允许创建⼦类对象时,除了使⽤⽗类的构造⽅法外,还可以⽤类体。 匿名类就是⼀个没有类申明的类体,因为没有名称,所有匿名类不可以申明对象,但却可以创建对象。 例如:
A是⼀个⼦类,那么下⾯的代码就是A的⼀个⼦类(匿名类)创建对象。
new A(){
匿名类的类体
};
由于匿名类是⼀个⼦类,所以和有⼀般⼦类的特征。可以继承⽗类的⽅法,同样也可以重写⽗类的⽅法。值得提醒的是,在使⽤匿名类时,⼀定是在某个类中直接⽤匿名类创建对象,因此匿名类必定是内部类,所以和其他匿名类⼀样可以访问外嵌类中的成员变量和⽅法,匿名类的类体中不可以什么。
static成员变量和static⽅法。
尽管匿名类没有申明的步骤,但可以在创建匿名对象时返回⼀个引⽤赋值给匹配参数。 匿名类的常⽤⽅式是向⽅法的参数传值。
具体⽅法如下:abstract class Speak{
public abstract void speakHello();
}
class Student{
void f(Speak sp){
sp.speakHello();
}
}
public class AnonymousClassDemo {
public static void main(String[] args) {
Speak speak = new Speak(){
public void speakHello(){
抽象类的使用System.out.println("⼤家好,祝⼯作愉快!");
}
};
speak.speakHello();
Student st = new Student();
st.f(new Speak(){
public void speakHello(){
System.out.println("I am a student, how are you"); }
});
}
}
上⾯代码的抽象类改成接⼝同样适⽤。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论