Java匿名内部类的学习
新建一个抽象类或者接口,抽象类中只要有一个抽象方法就是抽象类,接口的定义是:里面的方法全部都是抽象方法,接口和抽象类不能直接实例化,需要子类来实现
/* 匿名内部类:
1。匿名内部类其实就是内部类的简单样式
2.定义匿名内部类的前提,内部类必须是继承一个类或者实现接口
3.格式:new 父类或者接口(){定义子类的内容(如函数等)}
4.其实匿名内部类就是一个匿名子类对象。而且这个对象有点胖。
5.匿名内部类钟定义的方法最好不要超过3个。
多了建匿名内部类的代码会太多,很冗余。
*/
public abstract class Animal {
public String name;
public String sex;
public abstract void run();
public abstract void eat(String name);
/**
* 语法规则: abstract 不能够用于 private修饰的方法,不能够用于 final修饰的方法 abstract
* 不能够用与修饰static方法 abstract 不能够修饰成员属性
*/
// 这不是抽象方法
public final void eat() {
}
}
然后新建一个子类
public class AnimalDemo {
/**
* 匿名内部类的使用
*
* @param args
*/
public static void main(String[] args) {
//匿名内部类的使用,匿名内部类是实现了父类的抽象方法,或者实现接口的全部抽象方法
Animal a = new Animal() {
@Override
public void run() {
System.out.println("使用内部类的跑");
}
@Override
public void eat(String name) {
System.out.println("使用内部类的跑" + name);
}
};
a.eat(new Date().toString());
// 下面是不用匿名内部类的使用,等效于上面的
/*
* Animal a2=new Dog(); a2.eat("dog");
*/
Animal a3 = new Cat();
a3.eat("鱼");
}
}
// 下面是不用匿名内部类的使用,等效于上面的
class Cat extends Animal {
@Override
public void run() {
System.out.println("没有使用内部类的跑");
}
@Override
public void eat(String name) {
System.out.println("没有使用内部类 ,猫吃" + name);
}
}
Java匿名内部类的学习的更多相关文章
- java之jvm学习笔记六-十二(实践写自己的安全管理器)(jar包的代码认证和签名) (实践对jar包的代码签名) (策略文件)(策略和保护域) (访问控制器) (访问控制器的栈校验机制) (jvm基本结构)
java之jvm学习笔记六(实践写自己的安全管理器) 安全管理器SecurityManager里设计的内容实在是非常的庞大,它的核心方法就是checkPerssiom这个方法里又调用 AccessCo ...
- Java IO流学习
Java IO流学习 Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是 ...
- JAVA GUI编程学习笔记目录
2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...
- 一位资深程序员大牛给予Java初学者的学习路线建议
java学习这一部分其实也算是今天的重点,这一部分用来回答很多群里的朋友所问过的问题,那就是我你是如何学习Java的,能不能给点建议?今天我是打算来点干货,因此咱们就不说一些学习方法和技巧了,直接来谈 ...
- java并发编程学习: ThreadLocal使用及原理
多线程应用中,如果希望一个变量隔离在某个线程内,即:该变量只能由某个线程本身可见,其它线程无法访问,那么ThreadLocal可以很方便的帮你做到这一点. 先来看一下示例: package yjmyz ...
- 回答阿里社招面试如何准备,顺便谈谈对于Java程序猿学习当中各个阶段的建议
引言 其实本来真的没打算写这篇文章,主要是LZ得记忆力不是很好,不像一些记忆力强的人,面试完以后,几乎能把自己和面试官的对话都给记下来.LZ自己当初面试完以后,除了记住一些聊过的知识点以外,具体的内容 ...
- Java程序员学习之路
1. Java语言基础 谈到Java语 言基础学习的书籍,大家肯定会推荐Bruce Eckel的<Thinking in Java>.它是一本写的相当深刻的技术书籍,Java语言基础部分基 ...
- 老鸟谈谈JAVA EE的学习
老鸟谈谈JAVA EE的学习 因为出差和项目的原因,有将近一个月的时间没有更新博客了,今天终于得闲,和兄弟们分享一下JAVA EE的学习心得.书中带过,直入主题,下面我们首先看看什么是JAVA EE. ...
- Java虚拟机JVM学习07 类的卸载机制
Java虚拟机JVM学习07 类的卸载机制 类的生命周期 当Sample类被加载.连接和初始化后,它的生命周期就开始了. 当代表Sample类的Class对象不再被引用,即不可触及时,Class对象就 ...
随机推荐
- UVA-10305 Ordering Tasks (拓扑排序)
题目大意:给出n个点,m条关系,按关系的从小到大排序. 题目分析:拓扑排序的模板题,套模板. kahn算法: 伪代码: Kahn算法: 摘一段维基百科上关于Kahn算法的伪码描述: L← Empty ...
- IOS-网络(文件压缩和解压缩)
// // ViewController.m // IOS_0206_文件上传 // // Created by ma c on 16/2/6. // Copyright © 2016年 博文科技. ...
- 卸载oracle11g步骤图解
卸载oracle11g步骤图解 重启电脑即可
- vue.js利用vue.router创建前端路由
node.js方式: 利用node.js安装vue-router模块 cnpm install vue-router 安装完成后我们引入这个模板! 下载vue-router利用script引入方式: ...
- Oracle管道函数(Pipelined Table Function)实现的实例
1. 简单的例子(返回单列的表) 1>创建一个表类型 create or replace type t_table is table of number; 2>创建函数返回上面定义的类型 ...
- vue.js-列表分页
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- RabbitMQ 基础类和概念讲解
转至:http://www.ostest.cn/archives/497 引言 你是否遇到过两个(多个)系统间需要通过定时任务来同步某些数据?你是否在为异构系统的不同进程间相互调用.通讯的问题而苦恼. ...
- python的单元测试代码编写流程
单元测试: 单元测试是对单独的代码块分别进行测试, 以确保它们的正确性, 单元测试主要还是由开发人员来做, 其余的集成测试和系统测试由专业的测试人员来做. python的单元测试代码编写主要记住以下几 ...
- (转)亿级Web系统搭建——单机到分布式集群
当一个Web系统从日访问量10万逐步增长到1000万,甚至超过1亿的过程中,Web系统承受的压力会越来越大,在这个过程中,我们会遇到很多的问题.为了解决这些性能压力带来问题,我们需要在Web系统架构层 ...
- python虚拟环境--virtualenv和virtualenvwrapper
python虚拟环境--virtualenv和virtualenvwrapper http://www.cnblogs.com/technologylife/p/6635631.html https: ...