继承(is a的关系)
首先请看这两个代码:
eg:
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中提出了继承这一概念。
继承:多个类中存在相同属性和行为时,将这些内容抽取到单独的一个类中,那么多个类无需再定义这些属性和行为,只需要继承那个类即可;
class 父类名 {
}//父类、基类、超类
class 子类名 extends 父类名{
}//子类、派生类
//类2继承于类1
extends 是关键字;
由此,前面的两个代码就可以写为:
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(){
}
}
继承的优点:
- 提高了代码的复用性;
- 提高了代码的维护性;
- 让类与类之间产生关系,是多态的前提;
extends 关键字
- final class Animal —>类被final修饰后不能被继承
- final可以修饰常量、属性、类
class Animal{
public String name;