java - day008 - 接口,内部类
接口
作用: 结构设计工具,用来解耦合,需要有子类,隔离具体实现
接口是一个极端的抽象类
用 interface 代替 class
用 implements 代替 extends
// 接口中所有东西都是公开
// 所有方法都是抽象方法
// 所以方法定义可以省略/* public abstract */
// final 不可变
// static 在方法区只保存一份内存, 节省内存
// 常量使用 final 和 static 定义,字母大写,单词之间下划线链接
/*public static final */ //接口定义常量可以省略
接口中可以定义
1. 公开的抽象方法
2. 公开的常量
3. 公开的内部类, 内部接口
一个类可以实现多个接口
class A implements X,Y,Z{
}
class A extends B implements X,Y,Z{
}
接口和接口之间继承,可以多继承
interface A extends X,Y,Z{
}
内部类:
嵌套在类中,方法中,局部代码中的类
分为:
非静态内部类
class A {
class Inner {
}
}
非静态内部类不能独立创建对象,
它必须依赖于外部实例才能存在
A a = new A();
Inner i = a.new Inner();
一般用来封装局部的算法和逻辑,
静态内部类
class A {
static class Inner{
}
}
A.Inner i = new Inner();
考虑它与外部类关系紧密,可以嵌套定义在一起,
局部内部类
class A{
Weapon f(){
class Inner implements Weapon{
}
Inner i = new Inner();
return i;
}
}
Weapon w = a.f();
局部内部类,只能在布局使用,可以转成父类型,向外传递
匿名内部类
Weapon w = new Weapon(){};
大括号: 匿名类
new: 新建匿名类的对象
Weapon: 父类型
小括号: super(); 或者 super (.....);
java - day008 - 接口,内部类的更多相关文章
- 解决Java接口内部类的main()方法无法打印输出的问题
问题源自<Thinking in Java>关于内部类的章节,例子如下: public interface ClassInInterface{ void howdy(); public c ...
- Java内部类(4):静态内部类&接口内部类
使用static修饰的内部类我们称之为静态内部类,不过我们更喜欢称之为嵌套内部类.静态内部类与非静态内部类之间存在一个最大的区别,我们知道非静态内部类在编译完成之后会隐含地保存着一个引用,该引用是指向 ...
- java基础之 内部类
Java中的内部类共分为四种: 静态内部类static inner class (also called nested class) 成员内部类member inner class 局部内部类loca ...
- java 笔记(2) —— 内部类的作用
一.内部类简介 个人觉得内部类没多少研究价值,GUI中的事件响应算是非常典型的应用了. Java内部类其实在J2EE编程中使用较少,不过在窗口应用编程中特别常见,主要用来事件的处理.其实,做非GUI编 ...
- JAVA 第二天 内部类
package com.company; /** * Created by Administrator on 2016/8/23. */ public class Outter {//生成的字节码文件 ...
- Java 中的内部类
前言 在第一次把Java 编程思想中的内部类这一章撸完后,有点印象.大概知道了什么时内部类,局部内部类,匿名内部类,嵌套内部类.随着时间的推移,自己慢慢的就忘记了,总感觉自己思考的东西不多,于是 看了 ...
- Java中的 内部类(吐血总结)
1. 内部类的作用 内部类是一个独立的实体,可以用来实现闭包:能与外部类通信:内部类与接口使得多继承更完整 2. 内部类的分类 1)普通内部类 类的实例相关,可以看成是一个实例变量.内部类的类名由 “ ...
- Java Nested Classes(内部类~第一篇英文技术文档翻译)
鄙人最近尝试着翻译了自己的第一篇英文技术文档.Java Nested Classes Reference From Oracle Documentation 目录 嵌套类-Nested Classes ...
- java 里的内部类
java里的内部类通常能帮我们隐藏一些具体实现,体现良好的封装效果. 内部类又分几种: 1.普通内部类 2.局部内部类 3.匿名内部类 4.静态内部类 普通内部类 先来看第一种普通的内部类,这种内部类 ...
随机推荐
- ElasticSearch——索引生命周期管理
从ES6.6开始,Elasticsearch提供索引生命周期管理功能,索引生命周期管理可以通过API或者kibana界面配置,详情参考[index-lifecycle-management] 本文仅通 ...
- 第四章 INI配置——《跟我学Shiro》
转发地址:https://www.iteye.com/blog/jinnianshilongnian-2020820 第四章 INI配置——<跟我学Shiro> 博客分类: 跟我学Shir ...
- Azure Web应用相关设置
这里用来记录自己在工作中,在Azure Web应用中用到的配置 设置NodeJS版本 Azure Web应用默认的NodeJS版本是0.10.4,这个版本太低,不能满足实际的需要 参照下图修改,根据自 ...
- Redis ZSet 有序集合
有序集合类型与集合类型的区别就是他是有序的.有序集合是在集合的基础上为每一个元素关联一个分数,这就让有序集合不仅支持插入,删除,判断元素是否存在等操作外,还支持获取分数最高/最低的前N个元素.有序集合 ...
- jquery换一批的写法
jquery换一批的写法 <pre> <img src="{$yuming}/images/3/huanyipi.png" alt="" cu ...
- 2个CDH的hive数据同步
算法和数仓共用一套hive数据: CM: 真实数据: 都存在共享存储: oss, s3,ufile上. CDH配置能访问的权限(key)
- ESP32 - 乐鑫官方Flash烧录工具使用
第一步:打开软件flash_download_tools_v3.6.6.exe 第二步:点击ESP32 DownloadTool,启动我们板子的烧录工具 第三步:按照下图顺序,加载bin_prog目录 ...
- Python--context(上下文)(其实是环境)
最近读Flask的文档,读到很多关于Context(上下文)的术语,如应用上下文,请求上下文等,查阅资料但没有得到理解?有没有比较好的解释? 每一段程序都有很多外部变量.只有像Add这种简单的函数才是 ...
- HNUSTOJ-1617 Graph(费马数)
1617: Graph 时间限制: 1 Sec 内存限制: 32 MB提交: 31 解决: 5[提交][状态][讨论版] 题目描述 Your task is to judge whether a ...
- 谈谈Python中pop与remove的用法
remove() 函数用于移除列表中某个值的第一个匹配项. remove()方法语法: list.remove(obj) 如果obj不在列表中会引发 ValueError 错误,通常先使用count ...