自己理解的匿名类

来源:互联网 发布:网络机顶盒电视不出来 编辑:程序博客网 时间:2024/06/05 09:25
package com.xikeda.text;

/**

  *这是一个匿名类
  *匿名类的常见创建方式
  *
  *
  *new Hello(){
  *  匿名类的类体;
  *  }
  * 
  * 
  *  下面这个程序是将匿名作为参数
  *  匿名类的主要作用就是向方法的参数传值
  *  这种在实力化对象时同时给出其类型的具体实现,但没有给出实现后的具体类名称,这种类就叫匿名类
  *  匿名类就是一个子类,不用声明对象,但是可以直接用匿名类创建一个对象
  *  匿名类可以继承类的方法,也可以重写类的方法
  *  使用时,肯定在某个类的内部直接用匿名类创建对象,所以匿名类一定是内部类
  *  匿名类可以访问外嵌类的成员变量和方法,
  *  匿名类不可以声明static的变量和方法;
  *  匿名类没有类名,所以也就没有匿名函数
  *  匿名类在访问局部变量的时候,要求局部变量必须是final,访问成员变量就不需要了
 */


abstract class Student{//abstract修饰的抽象类  这儿声明一个抽象类
        abstract void speak();//抽象方法,只允许声明 不允许实现
}
class Teacher{
        void look(Student stu){//执行匿名类的重写的speak方法,向方法的参数传值
                stu.speak();
        }
}
public class AnonymousTest {
        public static void main(String[] args) {
                Teacher zhang = new Teacher();
                zhang.look(new Student(){//匿名类的类体,也就是Student子类的类型,他的父类就是Student
                        void speak(){//重写的方法
                                System.out.println("这是匿名类中的方法");
                        }
                }//匿名类结束
                );
        }
}



0 0
原创粉丝点击