• java匿名内部类举例


    public class Test {
        public static void main(String[] args) {
            //4.匿名内部类
            //主要是针对那些不能直接创建对象的抽象类和接口而来的
            Student stu=new Student();
            System.out.println(stu.getClass());//class com.aowin.noname.Student
            //4.1.通过实体类创建匿名内部类对象
            //相当于创建该类的一个子类对象
            Person p=new Person(){
                public void eat(){
                    System.out.println("吃八元套餐");
                }
            };
            p.eat();
            System.out.println(p.getClass());//class com.aowin.noname.Test$1//系统自动为子类命名Test$1
            
            Dog dog=new Dog();
            dog.bark();
            //4.2.通过抽象类创建匿名内部类对象
            //相当于定义了该抽象类的一个子类对象,并重写了抽象类中所有的抽象方法
            Animal an=new Animal(){
                public void bark(){
                    System.out.println("汪汪汪...");
                }
            };
            an.bark();
            //返回的是包名加类名
            System.out.println(an.getClass());//class com.aowin.noname.Test$2
            
            //4.3.通过接口创建匿名内部类对象
            //相当于定义了该接口的一个实现类对象,并重写了接口中所有的抽象方法
            Sportable s=new Sportable(){
                public void sport(){
                    System.out.println("打篮球");
                }
            };
            s.sport();
            System.out.println(s.getClass());//class com.aowin.noname.Test$3
            
        }
    }
    //实体类
    class Person{
        public void eat(){
            System.out.println("吃饭");
        }
    }
    class Student extends Person{
        public void eat(){
            System.out.println("吃八元套餐");
        }
    }
    //抽象类
    abstract class Animal{
        public abstract void bark();
    }
    class Dog extends Animal{
        public void bark() {
            System.out.println("汪汪...");
        }
    }
    //接口
    interface Sportable{
        public abstract void sport();
    }

  • 相关阅读:
    KVM虚拟化学习笔记系列文章列表(转)
    centos 6.5安装docker报错(查看报错详细信息--推荐)
    利用JMX统计远程JAVA进程的CPU和Memory---jVM managerment API
    OpenJDK和JDK区别
    docker sshd image problem, session required pam_loginuid.so, cann't login
    ssh-keygen
    优秀的软件测试人员必需具备的素质
    java基础篇---I/O技术
    jstl long类型数据转换为日期格式
    apache-hadoop-1.2.1、hbase、hive、mahout、nutch、solr安装教程
  • 原文地址:https://www.cnblogs.com/tiancai/p/8492634.html
Copyright © 2020-2023  润新知