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继承案例和继承的好处
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 }