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.异常类:程序在运行时,出现的 ...
随机推荐
- 【题解】洛谷P3952 [NOIP2017TG] 时间复杂度(模拟)
题目来源:洛谷P3952 思路 纯模拟没啥可说的了 果然好复杂 参考了你谷一个40行代码 代码 #include<iostream> #include<cstdio> #inc ...
- [转载] iOS应用程序的生命周期
iOS应用程序的生命周期 2015-06-23 iOS大全 (点击上方蓝字,快速关注我们) iOS应用程序一般都是由自己编写的代码和系统框架(system frameworks)组成,系统框架提供一些 ...
- 身份认证系统(一)单WEB应用的身份认证
身份认证技术,也就是所谓的登录功能,是现代WEB系统最常见的功能之一.本系列文章就试图为大家详细的介绍身份认证技术. Basic认证模式 Basic认证模式是较早被广泛应用的一种HTTP标准提供的认证 ...
- LeetCode 中级 - 优势洗牌(870)
给定两个大小相等的数组 A 和 B,A 相对于 B 的优势可以用满足 A[i] > B[i] 的索引 i 的数目来描述. 返回 A 的任意排列,使其相对于 B 的优势最大化. 示例 2: 输入: ...
- 百度地图定位JSP代码
附:百度地图API:http://lbsyun.baidu.com/cms/jsapi/reference/jsapi_reference.html#a1b0?qq-pf-to=pcqq.c2c &l ...
- Elasticsearch 聚合操作
数据准备: PUT /shop { "settings": { "number_of_shards": 3, "number_of_replicas& ...
- tp5.1路由报错No input file specified.
问题: 按照官方教安装了框架,打开首页没问题,可是安装教程路由规则打开 "http://127.0.0.1/hello/2" 时, 却报错误 "No input fil ...
- Case Helper
using System; using Microsoft.Xrm.Sdk; using Microsoft.Crm.Sdk.Messages; using Microsoft.Xrm.Sdk.Que ...
- S3C2440上LCD驱动(FrameBuffer)实例开发讲解(一)
一.开发环境 主 机:VMWare--Fedora 9 开发板:Mini2440--64MB Nand, Kernel:2.6.30.4 编译器:arm-linux-gcc-4.3.2 二.背景知识 ...
- usb之鼠标作为按键输入
1. 首先搞清楚,鼠标点左键.右键等能得到什么数据,然后分析这些数据上报事件即可. 第一个基本点:usb_alloc_urb函数,创建一个struct urb结构体,只能使用这个函数来创建,它是urb ...