Java继承概述

1.多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些相同属性和行为,只要继承那个类即可。

2.在Java中通过extends关键字可以实现类与类的继承。

例如:class 子类名 extends 父类名 {}

3.单独的这个类称为父类,基类或者超类;这多个类可以称为子类或者派生类。

4.有了继承以后,我们定义一个类的时候,可以在一个已经存在的类的基础上,还可以定义自己的新成员。

-----------------------------------------------------------------------------

首先我来写两个代码:

//定义学生类

class Student {

String name;

int age;

public Student() {}

//getXxx()/setXxx()

public void eat() {

System.out.println("吃饭");

}

}

//定义老师类

class Teacher {

String name;

int age;

public Teacher() {}

//getXxx()/setXxx()

public void eat() {

System.out.println("吃饭");

}

}

我们观察上面两个代码:

发现name,age成员变量,以及getXxx()/setXxx(),还有eat()等都是相同的。

如果我们后来继续定义类,举例:工人类,军人类。他们是不是也具备这些内容呢?

那么,我们每一次定义这样的类的时候,都要把这些重复的内容都重新定义一遍。

麻烦不?当然麻烦。所以,我们要考虑改进?

那么如何改进呢?

我这想的:我能不能把这些相同的内容给定义到一个独立的类中。

然后,让这多个类和这个独立的类产生一个关系,有了这个关系后,

这多个类就可以具备这个独立的类的功能。

为了实现这个效果,Java就提供了一个技术:继承。

父亲:

4个儿子

继承怎么表示呢?继承的格式是什么样子的呢?

class Fu {}

class Zi extends Fu {

}

我们就回头修改我们的代码:

class Person {

String name;

int age;

public Person() {}

//getXxx()/setXxx()

public void eat() {

System.out.println("吃饭");

}

}

class Student extends Person {

public Student() {}

}

class Teacher extends Person {

public Teacher() {}

}

-----------------------------------------------------------------------------

Java继承案例和继承的好处

代码语言:javascript复制 1 /*

2 继承概述:

3 把多个类中相同的内容给提取出来定义到一个类中。

4

5 如何实现继承呢?

6 Java提供了关键字:extends

7

8 格式:

9 class 子类名 extends 父类名 {}

10

11 好处:

12 A:提高了代码的复用性。

13 B:提高了代码的维护性。

14 C:让类与类之间产生了关系,是多态的前提。

15

16 类与类之间产生了关系,其实也是继承的一个弊端:

17 类的耦合性增强了。

18

19 开发的原则:低耦合,高内聚。

20 耦合:类与类之间的关系。

21 内聚:就是自己完成某件事情的能力。

22 */

23

24 //使用继承前

25 /*

26 class Student {

27 public void eat() {

28 System.out.println("吃饭");

29 }

30

31 public void sleep() {

32 System.out.println("睡觉");

33 }

34 }

35

36 class Teacher {

37 public void eat() {

38 System.out.println("吃饭");

39 }

40

41 public void sleep() {

42 System.out.println("睡觉");

43 }

44 }

45 */

46

47 //使用继承后

48 class Person {

49 public void eat() {

50 System.out.println("吃饭");

51 }

52

53 public void sleep() {

54 System.out.println("睡觉");

55 }

56 }

57

58 class Student extends Person {}

59

60 class Teacher extends Person {}

61

62 class ExtendsDemo {

63 public static void main(String[] args) {

64 Student s = new Student();

65 s.eat();

66 s.sleep();

67 System.out.println("-------------");

68

69 Teacher t = new Teacher();

70 t.eat();

71 t.sleep();

72 }

73 }

Copyright © 2088 国际足联世界杯_巴西世界杯 - sdophx.com All Rights Reserved.
友情链接