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.异常类:程序在运行时,出现的 ...
随机推荐
- 【VS插件】Highlight all occurrences of selected word
这个插件可以让相同的单词全部高亮成绿色,在VS中看一些文本(比如SQL)类型的文件时非常好用. 类似于这种效果:
- Spring - 父容器与子容器
一.Spring容器(父容器) 1.Mapper代理对象 2.Service对象 二.Springmvc(前端控制器)(子容器) Controller对象 1.标准的配置是这样的:Con ...
- Java中的IO流(四)
上一篇<Java中的IO流(三)>把IO流中的文件及目录操作的对象File类记录了一下,本篇把本不属性IO流但又和IO流有关系的一个对象作一下记录,此对象本属于集合框架里的一个子集,即Pr ...
- redis存储数据的时候
使用redis存储数据的时候,有时候为了查看的方便,通常会有层级或者说是目录, 这时候我们在set的时候,需要将key值使用“:”的符号来区分层级关系,比如:set(“a:b”, “123”),那么在 ...
- chromium之MessagePump.h
上代码,注释已经写得很详细了. 粗看一下,这是个纯虚类,用于跨平台的通用接口. MessagePump,Pump的意思是泵,,MessagePump也就是消息泵,输送消息 namespace base ...
- CentOS 6.8安装Ceph
机器规划 IP 主机名 角色 10.101.0.1 ceph01 mon admin mds 10.101.0.2 ceph02 ods 10.101.0.3 ceph03 ods 10.101.0. ...
- 利用clear清除浮动的一些问题
下面这段代码是用来清除浮动带来的高度塌陷问题 .clearfix:before { content: "."; display: block; height: 0; clear: ...
- Tornado 线程池应用
Tornado是一个异步框架,在异步操作的时候能提升程序的处理性能.但是如果在程序中碰到同步的逻辑,由于GIL的关系,会直接卡死,导致性能急剧下降. 目前对于mongodb以及redis都有比较不错的 ...
- Python学习 :集合
集合 Set 集合的创建 集合的创建只有一种方式 集合中的元素必须是不可变的数据类型 集合是无序的,可以通过 for 循环来遍历或者迭代器进行筛选 s=set('xiaoming') s1=['ale ...
- 1.Python是什么
前言 这里只是根据个人的理解而谈,庸俗浅薄,不是科学定义,也可以认为是假装自己理解啦,掩耳盗铃罢了.知无涯是多么的恐怖,哈哈 计算机语言 此处的语言不同于我们生活中所说的语言,因为生活中的语言 ...