Java技术核心卷I学习笔记——继承

本文主要探讨Java中的继承特性,包括关键字extends、super的使用,多态的概念,以及如何调用父类构造器。同时,详细讲解了Object类的equals、hashCode和toString方法,强调了在覆盖equals时的规范。此外,还介绍了抽象类、final类和final方法,以及对象包装器、自动打包和拆包的概念,最后提到了枚举类的定义和比较方式。
摘要由CSDN通过智能技术生成

——类、父类、子类

关键字extends表示继承。
在Java中,所有的继承都是公有继承。
子类中的方法不能直接访问父类的私有域

super关键字:
1.调用父类的方法
2.调用父类的构造器

如果子类的构造器没有显式地调用父类的构造器,则将自动地调用父类的默认构造器。如果父类没有不带参数的构造器,而子类的构造器中又没有显式地调用父类的其他构造器,则Java编译器将报告错误。

一个对象变量可以引用多种实际类型,称为多态
在运行时能够自动选择调用哪个方法,称为动态绑定

在覆盖一个方法时,子类的方法的访问权限不能低于父类方法的访问权限。特别是,如果父类方法是public,子类的方法也一定要声明为public。

不允许继承的类被称为final类。如果想阻止该类被继承,使用final修饰符声明。
类中的方法也可以被声明为final,如果这样做,那么它的子类就不能覆盖这个方法。

进行类型转换的唯一原因:在暂时忽视对象的实际类型之后,使用对象的全部功能。
因此,应该养成一个良好的编程习惯:在进行类型转换之前,先使用instanceof检查是否能够成功地转换。

if(ClassA instanceof ClassB)
{
//再把ClassA转换成ClassB
}

抽象类,作为派生其他类的基类,而不作为想使用的特定的实例类。抽象类中,声明一个完全不需要实现的方法,使用abstract关键字,称为抽象方法。为了提高程序的清晰度,包含一个或多个抽象方法的类本身必须被声明为抽象的。
除了抽象方法之外,抽象类中还可以包含具体数据和具体方法。建议尽量将通用的域和方法(不管抽不抽象)放在父类中(不管是否抽象类)。。。
抽象类不能被实例化,也就是说,如果将一个类声明为abstract,就不能创建这个类的对象。但需要注意的是,可以定义一个抽象类的对象变量,只能引用非抽象子类的对象。
例如:Person类是抽象类,Student类继承Person类

Person person = new Student("Tony");

这里的person是一个抽象Person类的变量,它引用了一个非抽象子类Student的实例。

我们都知道,最后将类中的域标记为private,而方法标记为public。但是有些时候,想允许子类的方法访问父类的某个域,则需要将这些域声明为protected

关于Java访问权限的4个访问修饰符:
1、 private ——仅对本类可见
2、 public —— 对所有类可见
3、 protected —— 对本包和所有子类可见
4、 default(默认) —— 对本包可见

所有类的父类——Object类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值