Java面向对象(Object Oriented Programming)03

本文介绍了Java中的继承概念,强调了它在代码复用和类抽象方面的作用。单继承与多继承的对比中指出Java仅支持单继承以避免复杂性,但可通过接口实现多继承的效果。同时,讲解了super关键字的使用场景和构造函数的调用顺序。此外,讨论了方法的重写规则、抽象方法的特点以及final关键字的应用。最后提到了Object类的基本方法如toString()和equals(),并阐述了对象比较的差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

继承

  1. 使用继承优化设计,方便修改代码  减少代码量。
  2. 类是对象的抽象,继承是对某一批类的抽象,同时也能更好的提高代码的复用性!
  3. 关键字:extands 的意思是  “扩展”,子类是父类的扩展。不同的叫法:超类、父类、基类、子类、派生类。
  4. 继承是代码重用的一种方式 ,将子类共有的属性和行为放到父类中。通过继承可以简化类的定义,实现代码的重用。
  5. 子类继承父类的成员变量和成员方法,但不继承父类的构造方法
  • 多继承,就是为了实现代码的复用性,却引入 了复杂性,使得系统类之间的关系混乱。
  • java中的多继承,可以通过接口来实现。
  • java中叧有单继承 ,没有像c++那样的多继承。多继承会引起混乱,使得 继承链过于复杂,系统难于维护。
  • 如果定义一个类时,没有调用extends,则它的父类是:java.lang.Object。

super 关键字

  • super是直接父类对象的引用。(super关键字是来访问父类的成员)
  • super只能出现在子类的方法和构造方法中
  • 可以通过super来访问父类中被子类覆盖的方法或属性。
  • super不能访问父类的private成员
  • 普通方法: 没有顺序限制。可以随便调用。
  • 构造函数中: 任何类的构造函数中,若是构造函数的第一行代码没有显式的调用super(...);那么
  • Java默认都会调用super();作为父类的初始化函数。 所以你这里的super();加不加 都无所谓。
  • 使用super关键字, super代表父类对象。
  • 在子类构造方法中调用且 必须是第一句。
  • super和this不能同时出现在构造方法中
  • super和this都不能再static方法中
  • super,构造方法第一句 总是:super(…)来调用父类对应的构造 方法。

修饰符

可以修饰属性和方法,本类、同包、子类可以访问。

多重继承关系初始化的顺序: 父类属性→父类构造方法→子类属性→子类构造方法。

方法重写:在子类中可以根据需要对从基类中继承来的方法进行重写。

                 重写方法必须和被重写方法具有相同方法名称、参数列表和返回 类型。

                 重写方法不能使用比被重写方法更严格的访问权限。(由于多态)。
方法重写的规则: 方法名相同、参数列表相同、 返回值类型相同或者是其子类;  访问权限不能严于父类。

抽象方法(abstract)

abstract  也可用于方法—抽象方法

抽象方法没有方法体
– 抽象方法必须在抽象类里
– 抽象方法必须在子类中被实现,除非子类是抽象类
在一个普通类中  有抽象方法  则这个类也必须更改为 抽象类。一个抽象方法中可以有  普通类。

final

 final:最终的,结束的;

例:private final int year=10;就是最终的属性不能在修改。同样方法和类使用 final 也不可再修改。

使用 final 修饰引用型变量,变量的值是固定不变的, 而变量所指向的对象的属性值是可变的。

Object

Object类是所有类的父类
一个类如果没有使用extends显性的继承另外一个类,
那么这个类就继承自Object类。
Object类是所有Java类的根基类
toString方法:
重写:toString方法:
默认返回:包名+类名+@+哈希码
可以重写!
equals()方法:
对象的比较—==和equals()
==:
比较两基本类型变量的值是否相等
比较两个引用类型的值即内存地址是否相等,即是否指向同一对象。
equals() :
– 两对象的内容是否一致
自定义类须重写equals(),否则其对象比较结果总是false。
– object1.equals(object2) 如:p1.equals(p2)
▪ 比较所指对象的内容是否一样
▪ 是比较两个对象,而非两个基本数据类型的变量
– object1 == object2
如:p1==p2
▪ 比较p1和p2的值即内存地址是否相等,即是否是指向同一对象。
父类方法的重写:
“==”:方法名、形参列表相同。
“≤≤”:返回值类型和异常类型,子类小于等于父类。
“≥”:访问权限,子类大于等于父类
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值