Java继承学习

news/2024/11/17 17:28:14/

继承的概念

继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。

继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。

继承类型

需要注意的是 Java 不支持多继承,但支持多重继承。

单继承

public class A {
......
}
public class B extends A{
......
}

多重继承

public class A {
......
}
public class B extends A {
......
}
public class C extends B {
......
}

不同类继承同一个类

public class A {
......
}
public class B extends A {
......
}
public class C extends A {
......
}

多继承(不支持)

public class A {
......
}
public class B {
......
}
public class C extends A,B{
......//JAVA不支持多继承
}

继承的特性

  • 子类拥有父类非 private 的属性、方法。

  • 子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。

  • 子类可以用自己的方式实现父类的方法。

  • Java 的继承是单继承,但是可以多重继承,单继承就是一个子类只能继承一个父类,多重继承就是,例如 B 类继承 A 类,C 类继承 B 类,所以按照关系就是 B 类是 C 类的父类,A 类是 B 类的父类,这是 Java 继承区别于 C++ 继承的一个特性。

  • 提高了类之间的耦合性(继承的缺点,耦合度高就会造成代码之间的联系越紧密,代码独立性越差)。

继承关键字

继承可以使用 extends 和 implements 这两个关键字来实现继承,而且所有的类都是继承于 java.lang.Object,当一个类没有继承的两个关键字,则默认继承 Object。

extends关键字

在 Java 中,类的继承是单一继承,也就是说,一个子类只能拥有一个父类,所以 extends 只能继承一个类。

implements关键字

使用 implements 关键字可以变相的使java具有多继承的特性,使用范围为类继承接口的情况,可以同时继承多个接口(接口跟接口之间采用逗号分隔)。

super 与 this 关键字

super关键字:我们可以通过super关键字来实现对父类成员的访问,用来引用当前对象的父类。

this关键字:指向自己的引用。

final 关键字

final 可以用来修饰变量(包括类属性、对象属性、局部变量和形参)、方法(包括类方法和对象方法)和类。

final 含义为 "最终的"。

使用 final 关键字声明类,就是把类定义定义为最终类,不能被继承,或者用于修饰方法,该方法不能被子类重写

public class A {
......
}
public class B extends A {
......
}
public class C extends B {
......
}

http://www.ppmy.cn/news/41006.html

相关文章

第一批因AI失业的人已经出现,有公司直接裁掉一半...

最近一家游戏公司裁掉半数原画师的新闻冲上热搜。 在一家游戏美术外包公司的技术总监时代财经透露,近一个月来,其所在公司已经裁掉了一半的原画师。“原画师利用Al完成方案,工作效率至少能提升50%以上,本来就在减少的甲方需求迅速…

OSPF开放式最短路径优先协议

目录标题OSPF协议OSPF的数据包---5种OSPF的状态机OSPF的工作过程OSPF的基本配置关于ospf协议从邻居建立成为邻接的条件ospf的接口网络类型OSPF协议 是是无类别链路状态型IGP协议;由于其基于拓扑进行更新收敛,故更新量会随着拓扑的变大而呈指数上升&…

redis 发布订阅模式

Redis有两种发布/订阅模式: 基于频道(Channel)的发布/订阅 基于模式(pattern)的发布/订阅 模式的发布订阅 模式与频道的区别,简单理解模式是多个频道的组合。 redis订阅和发布应用场景 redis的订阅发布功能相对轻量,针对数据准确和安全性…

每日刷题记录(十)

目录第一题:组队竞赛解题思路:代码实现:第二题:删除公共字符解题思路:代码实现:第三题:排序子序列解题思路:代码实现:第四题:倒置字符串解题思路:…

2.31、守护进程(2)

2.31、守护进程(2)1.守护进程的创建步骤2.什么情况下子进程不会继承父进程的组ID3.哪些操作会导致子进程的组ID发生改变4.kill怎么杀掉守护进程的实现守护进程1.守护进程的创建步骤 执行一个 fork(),之后父进程退出,子进程继续执…

LeetCode算法小抄--花式遍历二叉树

LeetCode算法小抄--花式遍历二叉树花式遍历二叉树翻转二叉树[226. 翻转二叉树](https://leetcode.cn/problems/invert-binary-tree/)填充节点的右侧指针[116. 填充每个节点的下一个右侧节点指针](https://leetcode.cn/problems/populating-next-right-pointers-in-each-node/)将…

Betaflight BN880 GPS 简单测试

Betaflight BN880 GPS 简单测试1. 源由2. 窗台对比测试3. 开阔区域测试3.1 GPS安装位置3.1.1 BN880 GPS 机尾打印支架 安装位置3.1.2 BN880 GPS 机头固定 安装位置3.1.3 M8N GPS 机尾打印支架 安装位置3.2 M8N模块历史记录3.3 BN880模块第一次(机尾安装)…

混沌工程入门--SpringBoot 集成 ChaosMonkey

目录 1.首先引入依赖 2.修改配置文件,增加如下内容 3.启动项目,调用接口,可能会出现接口延迟或者500 3.1接口500示例 4.官方文档地址:Chaos Monkey for Spring Boot Reference Guide 1.首先引入依赖 <dependency><groupId>de.codecentric</groupId><a…