学习笔记(十六)Java SE(九)重点 继承和多态

Java SE

本系列为本人学习情况记录,部分资料来自老师课件或书籍摘录。


继承和多态

继承

用来扩展父类

  • 使用super关键字调用父类构造方法
  • 默认会先调用父类构造,再执行子类构造
  • 构造方法不可被继承
  • Java中只能继承一个父类
  • 父类私有属性在子类中不能直接访问
  • 继承关系 - 是一种"is-a"关系:父类和子类必须存在这样的关系
  • 如果手动调用了父类带参构造,会覆盖默认调用的父类构造
  • 当父类没有默认构造时,不调用父类带参构造的子类构造会报错

重写

@Override 用来检测当前方法的重写是否合法

  • 方法重写发生在通过继承而相关的不同类中
  • 方法重写具有同样的方法签名、参数列表和返回值类型
  • 被子类重写的方法不能拥有比父类更严格的访问控制权限
  • 当子类重写父类的private方法时,看起来像是重写了方法,实际上只是一个新的方法,因为父类中的private方法在子类中根本无法访问到

多态

父类引用指向子类实现
同一个实体,同时具有多种形态
多态含义:多种形式
使用父类对象的地方,都可以使用子类对象、
同级子类型间不能互相转换
目标
利用方法的重写以及方法的调用机制增加程序的灵活性
概念
同一事物(父类引用)在不同条件下(子类对象)下,所表现出来的不同类型(父类引用对子类方法的调用)

语法:

父类 父类引用 = new 子类();

当调用的父类方法被子类重写过时,会调用子类重写的方法,而不是父类的方法

访问修饰符的权限

在这里插入图片描述

向上转型和向下转型

向上转型 使用父类的引用接收子类对象(多态第一 步)
向下转型使用子类的引用接收父类的引用,需要强制转换。转换前使用instanceof进行类型判断可以避免类型转换异常。

final关键字

表示对应结构不可变动在这里插入图片描述
final修饰成员变量时可以不给初值,但必须在构造方法中赋初值

final修饰形式参数:
误区:

public void modify(final MyClass myClass){
	//这里不报错因为 final修饰的是myClass这个值,它是个引用
	//所以只要不修改引用,就不会报错
	myClass.value++;
	//报错:myClass = new MyClass();
}

static关键字

表示被修饰内容可以通过类名直接调用,或者在类型加载前执行
在这里插入图片描述
static成员,也称为类成员、类属性
而普通成员变量被称为对象属性

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值