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 }