java中匿名类的注意细节

简介:

abstract class Outer{
    int num;
    public Outer(int x){
        num = x;
    }
    public abstract void show1();
     
    public abstract void show2();
}
 
public class PC{
    public static void main(String[] args){
       new Outer(55)//构造父类部分
       //子类重写部分
       {
            public void show1(){
               System.out.println(num++);
            }
             
            public void show2(){
               System.out.println(num++);
            }
             
            public void show3(){
               System.out.println(num++);
            }
        }.show3();
         
         
        Outer out =  new Outer(55){
            public void show1(){
               System.out.println(num++);
            }
             
            public void show2(){
               System.out.println(num++);
            }
             
            public void show3(){
               System.out.println(num++);
            }
        };
         
        out.show1();
        out.show2();
        //out.show3();// 错误: 找不到符号  out.show3();
         
        //注意: 第一个 new Outer(55) 得到是 Outer 的子类对象!
        //第二个 new Outer(55)得到子类对象之后又进行了类型提升, 所以它会隐藏自身特有的方法,呈现其父类的属性!
    }
}

目录
相关文章
|
6天前
|
Java
Java一分钟之-Java内部类与匿名类
【5月更文挑战第12天】本文介绍了Java的内部类和匿名类,包括成员内部类和局部内部类,以及匿名类的一次性子类实现。通过代码示例展示了它们的使用方法,同时提到了常见问题和易错点,如混淆内部类与嵌套类、匿名类的生命周期管理及内部类的访问权限,并给出了相应的避免策略。理解这些概念有助于提升代码质量。
17 3
|
6天前
|
Java
什么是Java匿名类?
【4月更文挑战第16天】
43 9
什么是Java匿名类?
|
6天前
|
Java
java匿名类和匿名函数
java匿名类和匿名函数
52 0
|
10月前
|
Java 定位技术 Android开发
Java的内部类和匿名类 , 您了解过吗?
Java的内部类和匿名类 , 您了解过吗?
|
Java 编译器
带你深入学习java内部类_匿名类,细到不能再细~
带你深入学习java内部类_匿名类,细到不能再细~
236 0
带你深入学习java内部类_匿名类,细到不能再细~
|
Java
Java中匿名子类 的 匿名对象、匿名子类 的 非匿名对象、非匿名类 的 匿名对象、非匿名类 的 非匿名对象
Java中匿名子类 的 匿名对象、匿名子类 的 非匿名对象、非匿名类 的 匿名对象、非匿名类 的 非匿名对象
193 0
|
Java
java中匿名类的注意细节
abstract class Outer{ int num; public Outer(int x){ num = x; } public abstract void show1(); public abstract void show2(); } ...
501 0