笔记 9.19
笔记:
1.多态:
1)多态的意义:
1.1)同一类型的引用指向不同的对象时,有不同的实现
------行为的多态(cut()、run()、study()、teach())
1.2)同一个对象被造型为不同的类型时,有不同的功能
------对象的多态(我、水)
2)向上造型:
2.1)父类型的引用指向子类的对象
2.2)能造型成的类型: 父类、所实现的接口
2.3)能点出来什么,看引用的类型
3)强制类型转换,成功的条件:
3.1)引用所指向的对象,就是该类型
3.2)引用所指向的对象,实现了该接口
4)若不符合如上两个条件,则发生类型转换异常ClassCastException,
建议:强转之前通过instanceof来判断引用是否是某种类型
符合强转成功条件instanceof为true,否则为false
2.成员内部类: 单独应用几率并不高
1)类中套中,里面的叫内部类,外面的叫外部类
2)内部类通常只服务于外部类,对外不具备可见性
3)内部类对象通常在外部类中创建
4)内部类中可以直接访问外部类的成员(包括私有的)
内部类中有个隐式的引用指向了创建它的外部类对象
eg: 外部类名.this.
3.匿名内部类:
1)若想创建一个类的对象,并且该对象只创建一次,
此时该类不必命名,称为匿名内部类
2)匿名内部类中想访问外部的数据,该数据必须是final的
4.面向对象三大特征:
1)封装:
1.1)类:封装的是对象的属性和行为
1.2)方法:封装的是具体的业务逻辑功能
1.3)访问控制修饰符:封装的是访问的权限
2)继承:
2.1)作用:代码的复用,避免代码重复
2.2)父类/基类:子类所共有的属性和行为
子类/派生类:子类所特有的属性和行为
2.3)子继承父后,子具有: 子+父
2.4)单一继承、传递性
3)多态:
3.1)意义:
行为的多态、对象的多态
3.2)向上造型、强制类型转换、instanceof
3.3)表现形式:
面向过程编程
面向对象编程
面向接口编程
重写、重载
重载是基于参数的多态
问:内部类有独立的.class吗?
答:有
main(){
Aoo o1 = new Aoo();
Boo o2 = new Boo(); //编译错误
}
class Aoo{
private int a;
void test(){
Boo o = new Boo(); //正确
}
class Boo{
void show(){
System.out.println(a); //正确
System.out.println(Aoo.this.a); //正确
System.out.println(this.a);
}
}
}
多态1.2)同一个对象(我)被造型为不同的类型(讲师、孩他妈...)时,有不同的功能
我 me = new 我();
讲师 o1 = me;
孩子他妈 o2 = me;
老公的老婆 o3 = me;
o1.授课();
o2.揍他();
o3.咬他();
o3.收工资();
me.授课();
me.揍他();
me.咬他();
me.收工资();
interface 讲师{
void 授课();
}
interface 孩子他妈{
void 揍他();
}
interface 老公的老婆{
void 咬他();
void 收工资();
}
class 我 implements 讲师,孩子他妈,老公的老婆{
重写4个方法
}
多态1.1)同一类型(动物)的引用指向不同的对象(Tiger、Bird...)时,有不同的实现
动物 o1 = new Tiger();
动物 o2 = new Bird();
动物 o3 = new Fish();
o1.run();
o2.run();
o3.run();
abstract class 动物{
abstract void run();
}
class Tiger extends 动物{
void run(){ 在地上跑 }
}
class Bird extends 动物{
void run(){ 在天上飞 }
}
class Fish extends 动物{
void run(){ 在水里游 }
}
设计原则:
1)将公共的属性和行为,抽象到父类中
2)所有子类行为都一样,设计为普通方法
所有子类行为不一样,设计为抽象方法
3)符合既是也是原则时,使用接口
部分子类公共,设计到接口中----单根性的扩展
相关推荐
原创:ANSI_X9.19_MAC算法。 ANSI X9.19MAC算法只使用双倍长密钥。
在探讨“Navicat for MySQL 9.19序列号”这一主题时,我们需要了解Navicat for MySQL软件的功能、特点及其序列号的重要性。本文将详细介绍Navicat for MySQL的相关知识点,包括其作为图形用户界面工具的优势以及...
dbvisualizer9.19版本,内含破解补丁。 使用方便,简单快捷,网上很难找,特别共享出来
本文将深入探讨标题提及的"DES 3DES ANSI-9.9-MAC ANSI-X9.19-MAC"的Java实现,这是一种结合了对称加密算法(DES和3DES)与消息认证码(MAC)的技术,用于增强数据完整性与安全性。 首先,DES(Data Encryption ...
C#语言开发ANSI X9.9 MAC 与 ANSI X9.19 MAC验证,里面只有一个类,调用即可。 ?为什么要写100个字? 为什么要写100个字?
Postman-win64-9.19.3是针对Windows 64位系统的版本,提供了强大的功能来帮助开发者进行接口测试和协作。 1. **Postman介绍**: Postman是一个全功能的API开发环境,它不仅支持测试,还包括了API的创建、文档编写...
Navacat Premium 破解 工人强大数据客户端
H.264svc最新官方软件,版本号9.19.7,原版无修改。 JSVM_9_18 -> JSVM_9_19 ====================== changes: - correction of scaling matrix selection - support of 2nd chroma QP offset - support of ...
本篇文章将深入探讨三种常见的MAC算法:PBOC_3DES_MAC、ANSI X9.9 MAC算法以及ANSI X9.19 MAC算法,并通过提供的Java源码文件(DesUtils.java、ANSIMacUtils.java、Pboc3DesMACUtils.java)来解析它们的实现细节。...
ghostscript,用于PDF到图片的转换,本压缩包包含x86和x64版本
Postman(postman-9.19.3-linux-x64.tar.gz)适用于Linux x64位系统,Postman是一款强大网页调试工具的客户端,Postman为用户提供强大的 Web API & HTTP 请求调试功能。postman能够发送任何类型的HTTP 请求 (GET, ...
myeclipse9.19
Postman(Postman-win32-9.19.3-Setup.exe)适用于Windows 32位系统,Postman是一款强大网页调试工具的客户端,Postman为用户提供强大的 Web API & HTTP 请求调试功能。postman能够发送任何类型的HTTP 请求 (GET, ...
9.19生词速记.pages
JSVM9.19.7可能是这个虚拟机的一个特定版本,针对某些功能或性能进行了优化。在这个版本中,可能包含了一些改进和修复,以提高JavaScript代码的执行效率和稳定性。 H.264/SVC(Scalable Video Coding)是一种高效...
在"X9.19 MAC计算 java 源码"这个主题中,我们主要探讨的是如何使用Java语言实现X9.19标准下的MAC计算,以及其中涉及到的3DES和DES加密算法以及数据异或XOR操作。 X9.19是金融行业的一个标准,它定义了金融机构间...
后台原型模板9.19.rp
防腐技术要求9.19.doc