Java学习 · 初识 面向对象深入二
面向对象深入
- 1. 抽象类
a) 声明
i. 抽象方法和抽象类必须用abstract来修饰
ii. 没有方法体,不需要实现
b) 定义
i. 抽象方法的类只能定义抽象类
ii. 抽象类中不一定全都是抽象方法
c) 使用
i. 抽象类中可以包含属性、方法、抽象方法
ii. 不能实例化
iii. 只能用来继承
iv. 子类必须覆盖所有抽象方法,否则子类还是抽象类



- 2. 接口 interface
a) 定义
i. 接口就是比抽象类还抽象的抽象类
ii. 接口就是规范,定义的是一组规则
iii. 实现了规范和实现的分离
b) 接口的相关规则
i. 所有方法都是抽象的
ii. 变量默认为public static final
c) 使用
i. 可以定义一个接口,用extends继承了一个接口
ii. 可以定义一个类,用implements实现一个接口
iii. 可以定义一个抽象类,用implements实现接口的部分方法
d) 定义格式
i. [访问修饰符] interface 接口名 extends 父接口
- 常量定义:public static final
- 方法定义: public abstract
e) 如何实现接口
i. 
- 3. 内部类
a) 定义
i. 将一个类定义置入另一个类定义当中
b) 特点
i. 可以访问外部类的成员(包括private成员),反之不行
ii. 可声明为,public default protected private
iii. 编译后生成两个类,OuterClass.class OuterClass$InnerClass.class
c) 分类
i. 匿名内部类 Anonymous
- 可以实现一个接口,或继承一个父类
- 只能实现一接口
- 适合创建一次性使用的类,不能重复使用,在GUI编程中常见

- 4. Lambda表达式
a) 作用
i. 传递一个反复使用的代码块(在使用函数式接口时使用
b) 语法
i. (参数,参数)->{代码块}
c) 函数式接口
i. 定义:只有一个抽象方法的接口
d) 三种引用
i. 方法引用
- Object::instanceMethod
- Class::staticMethod
- Class::instanceMethod
ii. 构造器引用
- 类型::new
e) 变量作用域
i. Lambad表达式总是捕获最终对象
Java学习 · 初识 面向对象深入二的更多相关文章
- Java学习 · 初识 面向对象基础二
Package 为什么需要使用package a) 解决类重名的问题 b) 便于管理类 怎么使用package a) 类的第一句非注释性语句 b) 命名:域名倒着写,再加上模块名 注意 ...
- Java学习 · 初识 面向对象深入一
面向对象深入 1.面向对象三大特征 a) 继承 inheritance 子类可以从父类继承属性和方法 子类可以提供自己的属性方法 b) 封装 encapsulation 对外隐藏某些属性和方法 对外公 ...
- Java学习 · 初识 面向对象基础一
面向对象基础 1.1面向过程与面向对象的区别 面向过程和面向对象二者都是思考问题的方式,再简单的事物时,可以线性思考时使用面向过程,但当事物较为复杂时,只能使用面向对象设计.但二者并不是对立的,在解决 ...
- Java基础-初识面向对象编程(Object-Oriented-Programming)
Java基础-初识面向对象编程(Object-Oriented-Programming) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Java是一门面向对象的程序设计语言.那么什 ...
- 0025 Java学习笔记-面向对象-final修饰符、不可变类
final关键字可以用于何处 修饰类:该类不可被继承 修饰变量:该变量一经初始化就不能被重新赋值,即使该值跟初始化的值相同或者指向同一个对象,也不可以 类变量: 实例变量: 形参: 注意可以修饰形参 ...
- 0030 Java学习笔记-面向对象-垃圾回收、(强、软、弱、虚)引用
垃圾回收特点 垃圾:程序运行过程中,会为对象.数组等分配内存,运行过程中或结束后,这些对象可能就没用了,没有变量再指向它们,这时候,它们就成了垃圾,等着垃圾回收程序的回收再利用 Java的垃圾回收机制 ...
- 0028 Java学习笔记-面向对象-Lambda表达式
匿名内部类与Lambda表达式示例 下面代码来源于:0027 Java学习笔记-面向对象-(非静态.静态.局部.匿名)内部类 package testpack; public class Test1{ ...
- 0013 Java学习笔记-面向对象-static、静态变量、静态方法、静态块、单例类
static可以修饰哪些成员 成员变量---可以修饰 构造方法---不可以 方法---可以修饰 初始化块---可以修饰 内部类(包括接口.枚举)---可以修饰 总的来说:静态成员不能访问非静态成员 静 ...
- 黑马程序员——【Java基础】——面向对象(二)异常机制、包(Package)
---------- android培训.java培训.期待与您交流! ---------- 一.异常机制 (一)异常概述 1.异常:就是程序在运行时出现不正常情况. 2.异常类:程序在运行时,出现的 ...
随机推荐
- 转-四种方案解决ScrollView嵌套ListView问题
本人网上用的ID是泡面或安卓泡面,学习一年半之前开始从事Android应用开发,这是我写的第一篇Android技术文章,转载请注明出处和作者,有写的不好的地方还请帮忙指出,谢谢. 在工作中,曾多次碰到 ...
- REST解惑
本文是「架构风格:你真的懂REST吗?」的补充! REST全称是Representational State Transfer,目前普遍接受的中文翻译为「表述性状态转移」! 即使翻译过来了,你依然有一 ...
- iOS:CALayer(17-12-06更)
目录 1.CALayer(父类) 2.CAShapeLayer(形状/画布) 3.CAEmitterLayer(粒子发射层) 4.CAGradientLayer(渐变层) 5.CATransformL ...
- DW CS5序列号
先要改host文件,以防止其连接 Adobe 的激活验证服务器 1. 用记事本编辑“C:\Windows\System32\Drivers\etc\”目录下的 hosts 文件, 在末尾加上: 127 ...
- GitHub Desktop 拉取 GitHub上 Tag 版本代码
一直在使用 GitHub Desktop 图形化 git 管理工具,统一项目框架版本时需要切换到ThinkPHP Tag 分支版本,步骤如下, 1,先在 GitHub 中找到需要的版本,点进去 2,点 ...
- shell习题第2题:统计ip访问量
[题目要求] 有日志1.log,部分内容如下: 112.111.12.248 – [25/Sep/2013:16:08:31 +0800]formula-x.haotui.com “/seccode. ...
- angular常用属性大全
Angular元素属性大全 addClass()-为每个匹配的元素添加指定的样式类名 after()-在匹配元素集合中的每个元素后面插入参数所指定的内容,作为其兄弟节点 append()-在每个匹配元 ...
- 【rabbitmq消息队列配置】
#erlang语言支持包 #rabbitmq-server安装支持 #添加用户 #删除用户 #用户角色 #启动 #登录 #管理界面 #guest登录不了: Rabbitmq.conf文件添加 #开启管 ...
- java中子类会继承父类的构造方法吗?
参考: https://blog.csdn.net/wangyl_gain/article/details/49366505
- swig与python
当你觉得python慢的时候,当你的c/c++代码难以用在python上的时候,你可能会注意这篇文章.swig是一个可以把c/c++代码封装为python库的工具.(本文封装为python3的库) 文 ...