我是靠谱客的博主 义气龙猫,这篇文章主要介绍Java中的继承机制今天我们来说一说Java语言中的继承机制,这是Java语言中的核心机制之一,重要性不言而喻,接下来我们来进行今天的学习,现在分享给大家,希望可以做个参考。

今天我们来说一说Java语言中的继承机制,这是Java语言中的核心机制之一,重要性不言而喻,接下来我们来进行今天的学习

继承

1、继承是面向对象三大特征之一,三大特征分别是:封装、继承、多态

2、继承"基本"作用是代码复用
但是继承最重要的作用是:有了继承才有以后"方法的覆盖(方法覆盖/方法重写)“和"多态机制

3、继承语法格式:
[修饰符裂变] class 类名 extends 父类名{
类体 = 属性 + 方法
}
4、java语言当中的继承只支持单继承,一个类不能同时继承很多类,只能继承一个类。在c++中有多继承

5、关于继承中的一些术语
B类继承A类,其中:
A类称为:父类、基类、超类、superClass
B类称为:子类,派生类、subClass

6、在java语言中子类继承父类都继承哪些数据呢?
-私有的不支持继承
-构造方法不支持继承
-其他数据都可以被继承
也就是说,除了父类中的私有方法和构造方法不能够继承其他数据皆可继承

7、虽然java语言当中只支持单继承,但是一个类也可以简介继承其他类,例如

复制代码
1
2
3
4
5
6
7
C extends B{ } B extends A{ } A extends T{ }

C直接继承B类,但是C类间接继承T、A类

8、java语言中假设一个类没有显示继承任何类,该类默认继承JavaSE库中的java.lang.Object类,java语言中任何一个类都有Object类的特征

下面我们来写一下关于继承机制的一个例子:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
package Day3; public class Account { //设定一个账户类包括其中的属性 private String actno;//账户名 private double balance;//账户余额 public Account() {//无参构造方法 super(); } public Account(String actno, double balance) {//有参构造方法 super(); this.actno = actno; this.balance = balance; } public String getActno() { //由于设定的是private私有,需要用set、get方法获取其中的数据 return actno; } public void setActno(String actno) { this.actno = actno; } public double getBalance() { return balance; } public void setBalance(double balance) { this.balance = balance; } } package Day3; public class CreditAccount extends Account { //该类继承账户类 //私有方法不支持继承 private double credit; //子类中特有属性 public CreditAccount() { } public double getCredit() {//子类中特有的类 return credit; } public void setCredit(double credit) { this.credit = credit; } } package Day3; public class Extends { public static void main(String [] args) { Extends et = new Extends();//继承Object父类、超类、superclass、基类 String s = et.toString(); /* toString是Object中写的内容 默认继承Object类 */ System.out.println(s); CreditAccount act = new CreditAccount();//创建子类对象 act.setActno("act-001");//给子类对象属性赋值 act.setBalance(-1000); act.setCredit(0.99); System.out.println(act.getActno() + " , " + act.getBalance() + " , " + act.getCredit()); } }

关于java语言中的方法重载:

1、方法重载又称为overload

2、方法重载什么时候使用?

在同一个类当中,方法完成的功能是相似的,建议方法名相同,这样方便程序员编程,就像在调用一个方法似的,代码美观

3、什么条件满足之后构成方法重载

  • 在同一个类当中
  • 方法名相同
  • 参数列表不同:类型、顺序、个数

4、方法重载和什么无关?

  • 和方法的返回值类型无关
  • 和方法的修饰符列表无关

关于java语言中的方法覆盖

1、方法覆盖又被称为方法重写,英语单词override/overwrite

2、什么时候使用方法重写?
当父类中的方法以及无法满足当前子类业务需求,子类有必要将父类中继承过来得到方法进行重写编写,这个重写编写的过程称为方法重写/方法覆盖

3、什么条件满足之后方法会发生重写呢?【代码组成什么条件之后,就构成方法的覆盖呢?】

  • 方法重写发生在具有继承关系父子类之间
  • 返回值类型相同,方法名相同,形参列表相同
  • 访问权限不能更低,可以更高,public为最高
  • 抛出异常不能更多,可以更少。

4、简易方法重写时候尽量复制粘贴,或者直接生成,不容易出错,不要编写,容易出错

5、注意:

  • 私有方法不能继承,所以不能覆盖
  • 构造方法不能继承,所以不能覆盖
  • 静态方法不存在覆盖
  • 覆盖只针对方法,不谈属性

eg

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
public class Extends { public static void main(String [] args) { Animal al = new Animal();//创建动物对象 al.Animal(); Bird rd = new Bird();//创建小鸟对象 rd.Animal(); Cat at = new Cat();//创建小猫对象 at.Animal(); } } package Day3; public class Animal { public void Move() { System.out.println("动物在移动"); } } package Day3; public class Bird extends Animal{ public void Move() { System.out.println("小鸟在飞翔"); } } package Day3; public class Cat extends Animal { public void Move() { System.out.println("小猫在走猫步"); } }

此处其他动物类都有动物移动move()的功能,我们在此刻,使用子类( Cat 、 Bird )继承父类( Animal ),又由于不同动物的移动方式不同,在此刻需要根据不同子类所需,对其进行不同类别功能的实现,在此我们把这种操作称为方法重写

最后

以上就是义气龙猫最近收集整理的关于Java中的继承机制今天我们来说一说Java语言中的继承机制,这是Java语言中的核心机制之一,重要性不言而喻,接下来我们来进行今天的学习的全部内容,更多相关Java中内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(105)

评论列表共有 0 条评论

立即
投稿
返回
顶部