您当前的位置: 首页 > 

梁云亮

暂无认证

  • 4浏览

    0关注

    1211博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

匿名内部类

梁云亮 发布时间:2019-10-22 20:29:37 ,浏览量:4

匿名内部类

匿名内部类:没有名称的类,主要用来创建对象(只创建一次) 匿名内部类需要通过父类或者接口实现。 语法:

父类名/接口名 对象名 = new 父类名/接口名 {
   重写的父类的方法
   或
   实现的接口中的方法
};
示例1:普通父类
  • 父类:
public class A {
    public void fun(){
        System.out.println("A fun");
    }
}
  • 测试代码:
public static void main(String[] args) {
    class B1 extends  A{

    }
    B1 obj1 = new B1();
    obj1.fun();

    class B2 extends  A{
        @Override
        public void fun() {//重写父类的方法
            System.out.println("B2 fun");
        }
    }
    B2 obj2 = new B2();
    obj2.fun();

    

    A obj11 = new A(){

    };
    obj11.fun();

    A obj22 = new A(){
        @Override
        public void fun() {
            System.out.println("22 fun");
        }
    };
    obj22.fun();

    new A(){
        @Override
        public void fun() {
            System.out.println("33 fun");
        }
    }.fun();
}
示例:抽象父类
  • 抽象父类:
public abstract class CC {
	public void fun() {
		System.out.println("fun");
	}
	public abstract void fun2();
}
  • 测试代码:
public static void main(String[] args) {
	CC obj = new CC() {

		public void fun2() {
			System.out.println("xixi");
		}

	};
	obj.fun2();
	
	new CC() {

		public void fun2() {
			System.out.println("xixi");
		}

	}.fun2();
}
示例:接口
  • 接口:
public interface A {
     void fun();
}
  • 测试代码:
public static void main(String[] args) {

    class B2 implements A {
        @Override
        public void fun() {//重写父类的方法
            System.out.println("B2 fun");
        }
    }
    B2 obj2 = new B2();
    obj2.fun();

    

    A obj22 = new A() {
        @Override
        public void fun() {
            System.out.println("22 fun");
        }
    };
    obj22.fun();

    new A() {
        @Override
        public void fun() {
            System.out.println("33 fun");
        }
    }.fun();
}
关注
打赏
1665409997
查看更多评论
立即登录/注册

微信扫码登录

0.0423s