JavaSE笔记--------第五章面向对象(中)

面向对象的特征二:继承性(extends)
好处:
①减少了代码的冗余,提高了代码的复用性
②便于功能的扩展
③为多态性的使用提供了前提
格式: class A extends B{}
A:子类,派生类 subclass
B:父类 基类 超类 superclass
子类获取到父类的属性和方法
特别的,父类中的private属性和方法,子类也获取了私有结构,只是由于封装性的影响,不能直接调用
规定:
1.一个类可以被多个子类继承,一个类只能有一个父类(单继承)
2.子父类是相对的概念(直接父类、间接父类)java.lang.Object
方法的重写: override/overwrite
1.重写:子类继承父类后,可以对父类中同名同参数方法进行覆盖操作
2.应用:重写后,创建子类对象时调用重写后的方法
3.重写的规定:
方法的声明:权限修饰符 返回值类型 方法名(形参列表){ 方法体}
① 方法体和形参列表相同
②子类重写方法的权限修饰符不小于父类方法的权限修饰符
特殊的 子类不能重写private方法
③返回值类型:
父类被重写的方法的返回值类型是void ,子类重写方法的返回值类型也只能 是void
父类被重写的方法的返回值类型是A类型,子类重写的方法的返回值类型是A类或者A类的子类
④子类方法抛出的异常不能大于父类被重写方法抛出的异常
super关键字:
理解为父类的… 可以用来调用属性、方法、构造器
super的使用:
我们可以在子类的方法或构造器中,使用super.方法或者super.属性调用父类的方法或者属性 通常省略不写
特殊的:当子类和父类中定义了同名的属性时,用super.属性
super调用构造器:super(形参列表) 必须只能在子类的首行
针对thi(形参列表)或super(形参列表) 只能二选一
不写默认super();
子类对象的实例化过程:
1.从结果上看
子类继承父类以后,就获得了父类声明的属性和方法
创建子类对象,在堆空间中,就会加载所有父类中声明的属性
2.从过程上看
当我们通过子类的构造器创建子类对象时,我们一定会直接或者间接的调用其父类的构造器,
进而调用父类的父类的构造器。。。。直到调用了Object类的空参构造器为止,正因为加载过
所有父类的结构,所以才可以看到内存中有父类的结构,子类对象才可以调用
面向对象的特征之三:多态性 理解为一个事物的多种形态
对象多态性:父类的引用指向子类的对象
多态的使用:当调用子父类同名同参数方法时,实际执行的是子类重写的方法-------虚拟方法调用
有了对象的多态性以后,我们在编译期间只能调用父类中声明的方法,但在运行期,我们实际执行的是子类重写父类的方法
编译看左边,运行看右边
多态性的使用前提:①类的继承关系 ②方法的重写
对象的多态性只适用于方法,不适用于属性
方法的重载和重写:
在这里插入图片描述

向下转型的使用:强制类型转换
父类向下转型使用instanceof关键字判断 子类
子类向上转型 多态
使用强转时可能出现ClassCastException异常
instanceof关键字的使用:
a instanceof A判断a是否是类A的实例
使用情景:为了避免向下转型出现异常,先判断,再转型

Object类的使用:
Object类是所有类的父类
Object类中的功能(属性,方法)具有通用性
clone() equals() finalize()垃圾回收 getClass() hashcode() toString ()…
==和equals 的 区别:
是运算符
1.可以使用在基本数据类型变量和引用数据类型变量中
2.如果比较的是基本数据类型的变量,比较两个变量保存的数据是否相同(不一定同类型)
3.如果比较的是引用数据类型的变量,比较的是两个变量的地址值
equals方法的使用
只适用于引用数据类型
Object类中equals方法比较的是地址值 与“
”一样
像String 、File、Date、包装类都重写了Object类中的equals方法,重写后比较的是两个对象实体内容是否相同
重写equals()方法 自动生成
toString() 方法的使用:
1.当我们输出一个对象的引用时,默认输出toString()方法
2.像String、Date、File、包装类 都重写了toString 方法
自动生成

包装类的使用 (Wrapper) 针对八种基本数据类型定义相应的引用类型
int-----Integer char—Character
基本数据类型---->包装类 调用包装类的构造器
Integer integer = new Integer(1230);
包装类—>基本数据类型 调用包装类的xxxValue()方法
新特征 :自动装箱 和自动拆箱 JDK5.0之后
基本数据类型、包装类---->String类型
方式1:连接运算 “+”
方式2:调用String的valueOf()方法
String类型—>基本数据类型、包装类
调用包装类中的parseXXX方法
可能会出现NumberFormatException异常
Integer内部定义了IntegerCache结构 保存了-128----127之内的整数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值