Java 基础笔记
1.抽象封装,继承,多态
2. 多态的表现形式
-- 重载,重写,继承,实现
-- 就是一种范型机制
3. 继承及多继承内部类功能
-- 外部:就是一个类对象可以化身为多个其他类型的对象被传递给其他类对象的方法使用(多态表现形式)
-- 内部:多个内部类对象作为成员属性或者局部变量,在外部类对象中使用(继承本身功能)
4. java类只能继承一个具体或者抽象类,每个内部类也同样只能继承一个具体或者抽象类,但是一个类可以拥有多个内部类,即实现了多继承功能 --
-- 通过外部类的方法可以获取内部类对象,例如:otherClass.method(outter.getInnerA()); otherClass.method(outter.getInnerB());
5.抽象
类 -- 对具体事物的抽象
接口 --对类的抽象,即提取多个类的共同特征
例如:奥迪A4是具体对象, 奥迪车是类--是对多个型号车的抽象 轿车是奥迪车类的父类 车是接口--是对奥迪车类,宝马车类的抽象
6.使用多态(继承,接口)代替instanceOf的使用,设计类接口时可以增加carType成员及get和set方法,这样在使用父类或者接口引用时,可以使用该方法来获取到具体实例对应的类型
奥迪A4(实例)-->奥迪车(子类)-->轿车(父类)-->车接口
宝马X5(实例)-->宝马车(子类)-->轿车(父类)-->车接口
--实际业务场景中,子类与父类间可能还有多个继承关系存在
--车接口定义getCarTye()方法定义,实现在轿车父类里,在实例化对象时会先把轿车父类实例化,所以奥迪车子类不用实现车接口里的方法,因为父类对象已有(继承即子对象可以使用父及祖父对象的属性和方法)
--实例化对象时,会先调用基类的构造方法并且逐级向下调用·
--实例化A4对象时调用轿车父类setCartype方法-- A4
--实例化X3对象时调用轿车父类setCartype方法-- X3
--接口引用调用getCarType是取出的是对应的类型
7.重载
--只关心类名和方法形参列表
8.初始化和构造函数
-- 1.实例化对象时,首先调用当前类的基类的构造器,递归向上调用,直到到达根
-- 2.层级向下进行初始化成员属性
-- 3.层级向下调用构造函数
9.局部变量无初始化操作,因为局部变量未赋值基本都是程序员忽略的错误,所以编译提示错误
10.垃圾回收只回收java new的对象占用的内存,由调用本地方法产生的内存占用需要调用finalize()方法清理
11.抽象类
-- 抽象类不可以实例化是,抽取并实现相同的业务逻辑到方法中(抽象类可以有实现方法),声明抽象方法给需要个性化定制的其他业务逻辑,由具体继承的类去实现。
--子实现类需要做:1.实现抽象方法实现个性化业务逻辑,2.调用父抽象类的共同方法完成整个业务逻辑