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.异常类:程序在运行时,出现的 ...
随机推荐
- Xcode 7提示App Transport Security has blocked a cleartext HTTP (http://) resource load的解决办法
Xcode 7提示App Transport Security has blocked a cleartext HTTP (http://) resource load的解决办法 今天使用Xcod ...
- java文件系统中的的NIO与IO
java从jdk1.4后就引入了java NIO机制: NIO的显著特点就是通道(channel).缓冲(buffer).选择器(selector),NIO机制中添加了传统I/O机制中没有的非阻塞调用 ...
- Office365学习笔记—列表查询,删除条目,更新条目。
1,基于Query语句的列表查询. function retrieveListItems(itemId) { var siteUrl=_spPageContextInfo.webServerRelat ...
- PX4地面站QGroundControl在ubuntu下的安装
1.引言 相信很多玩开源无人机的朋友手上都有一架无人机,而不是仅仅停留在理论的学习和程序的学习.放飞自己组装的无人机才是乐趣所在,那么这本文就介绍玩无人机必不可少的地面站软件qgroundcontro ...
- 02 看懂Oracle执行计划
看懂Oracle执行计划 最近一直在跟Oracle打交道,从最初的一脸懵逼到现在的略有所知,也来总结一下自己最近所学,不定时更新ing… 一:什么是Oracle执行计划? 执行计划是一条查询语句在 ...
- Python 基础 变量和数据类型
python 数据类型 一,整数,可以出来任意大小的整数. 如 1, 100, -8080,0 等等. 二,浮点数,浮点数也可以被成为小数. 三,字符串,字符串是以'' 或"". ...
- mysql 一看就会 基本语法
创建表 create table <表名>( <字段名> 类型(长度) not null primary key auto_increment, **主键 name char ...
- detach()之大坑:detach会引起局部变量失效引起线程对内存的非法访问题。
detach()之大坑:detach会引起局部变量失效引起线程对内存的非法访问题.一:传递临时对象作为线程参数(1.1)要避免的陷阱(解释一)(1.2)要避免的陷阱(解释一)事实一:只要用临时构造的A ...
- Wireshark工具抓包的数据包分析
Wireshark(前称Ethereal)是一个网络封包分析软件.网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料. Wireshark使用WinPCAP作为接口,直接与网卡 ...
- MySQL的JOIN用法
JOIN的含义就如英文单词“join”一样,连接两张表,大致分为内连接,外连接,右连接,左连接,自然连接.这里描述先甩出一张用烂了的图,然后插入测试数据. CREATE TABLE t_blog( i ...