面向对象
三大特性
在使用时,需要在main中,先new出来子类,然后用子类的名称加上点,便可以根据提示,调用需要的东西
封装
- 属性私有(private), get、set是可以操作私有属性的方法
- get:是获得这个数据
- set:是给这个数据设置值
- 快捷键: alt+insert 生成get/set属性
- 也可以在set中,设置一些前提条件(if else 等)来增加程序的安全性;提高系统的可维护性
继承
- extends --> 拓展 即子类是分类的拓展
- 子类继承了父类后,就会拥有父类的全部方法
- public
protected
default
private (可以使用get set进行调用)
优先级如上 - 在java中,所有的类,都默认继承object类
==================================================
- super指向父类,但如果是private则无法用super调用
- 在子类中有隐藏代码,默认调用父类,即super(),可以自己写,也可不写;但是super()必须在顶部
- super只能出现在子类的方法或者构造方法中
- super和this 不能同时调用构造方法
- this :本身调用者的这个对象;没有继承也可以使用;本类的构造
super :代表父类对象的应用;只能在继承中使用;父类的构造
=================================================
- 方法的重写:Override
- 重写是方法的重写,与属性无关
- 重写的关键词只能是public
- 如果需要重写,则在定义方法时,不要加上static,如果加上了static,则不会重写,而是直接读入所调用的类中的
- 重写需要有继承的关系,子类重写父类的方法
- 方法名必须相同,参数类表相同,修饰符的范围可以扩大,但不能缩小( public>Protected>default>private)
- 抛出的异常,范围可以被缩小,但不能扩大;
- 子类的方法和父类的方法需要一致:方法体不同
- 重写的原因:
1).父类的功能子类不一定需要,或不一定满足
2).alt + insert : override - 重写之后,重写的那个,则不会再继承父类的了,二货思子类自己本身的了
多态
-
多态:统一方法可以根据发送对象的不同而采用多种不用的行为方式
一个对象的实际类型是确定的,但可以指向对象的引用的类型有很多 -
动态编译:类型:可拓展性
-
多态的注意事项
1)多态是方法的多态,属性并没有多态
2)父类和子类,有联系, 否则会出现类型转换类型异常–>ClassCastException
3)继承关系:方法需要重写(但是,static属于类;通过final修饰的市是常量,不能重写),父类的引用指向子类对象
=================================================
-
instanceof的使用
-
方法:System.out.println( X instanceof Y );
如果 X 与 Y 之间有父子关系(祖父关系也可以),那么结果是ture
=================================================
- 关系的转化
1)如果是从 低的 -> 高的(没有错,不要怀疑) ,则可以直接转化
2)相反,则需要强制转换
3)强制转换的方法:(需要转换成的类型)变量名 ->然后在按Alt+enter键 -> 便可以实现
4)但是强制转化可能会造成丢失一些方法
5)其优点是方便方法的调用,减少重复的代码
7. 抽象的编程思想