博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java匿名内部类举例和内部类举例
阅读量:5990 次
发布时间:2019-06-20

本文共 1616 字,大约阅读时间需要 5 分钟。

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();
}


内部类

package thinking.learnInternalClass.hengbao;

public class DotNew {

public class Inner{

}public static void main(String[] args) {    DotNew dn=new DotNew();    DotNew.Inner dni=dn.new Inner();}

}

//要想直接创建内部类的对象,不能按照想象的方式,去引用外部类的名字DotNew,而必须使用外部类的对象来创建内部类对象,

转载于:https://blog.51cto.com/12267285/2135792

你可能感兴趣的文章
JAVA S3 Example
查看>>
iOS代码分享:分享、加密、解析、二维码、Http多线程、重力感应、常用界面重载等...
查看>>
tomcat线程模型
查看>>
JAVA ArrayList 源码学习
查看>>
在使用jersey框架搭建服务时,经常会报出如下异常
查看>>
maven -- profile
查看>>
结合简单demo分析线程及多线程的使用
查看>>
open source in android platform (./configure)
查看>>
电影《降临》,简直就是在讲BitCoin的故事啊
查看>>
boost静态链接库和c++/clr不兼容问题:未能加载文件或程序集,不是有效的Win32应用程序。...
查看>>
jQuery取得select选择的文本与值
查看>>
ORACLE体系结构--密码文件管理
查看>>
Spring6:基于注解的Spring MVC(上篇)
查看>>
线性代数---线性相关和生成子空间
查看>>
robotium之基本操作和log操作
查看>>
Struts秘籍之第2段:第3.8式:使用JavaScript动态改变选择项
查看>>
hexo 搭建个人主页的一些问题总结
查看>>
linux用户管理(1)----创建用户(adduser和useradd)和删除用户(userdel)
查看>>
android中左右滑屏的实现(广告位banner组件)
查看>>
团队敏捷开发
查看>>