继承的概念:在现实生活中,我们理解的继承就是子继承父,在程序中也是一样,就是在已经存在的类的基础上进行扩展,父类所拥有的一切,子类都可以继承,子类所继承的父类的属性和方法,就可以使用他们,另外,子类所继承父类的属性和方法,也可以创建自己的特性。可以理解为一个类继承另外一个类的功能,并且增加它自己的新功能的能力,也就是将几个类中的相同特性抽出来放在一个类中。
继承是is-a的关系,是一种表示特殊与一般的关系。
多个类存在相同的属性和行为时,将这些内容抽取到单独的一个类中,那么这个类只要继承即可,此处的多个类就为子类,单独的这个类就是父类。可以理解为子类is a 父类
类的语法规则;class Zi extends Fu{
public class A {
}
public class B extend A {
}
这样的话B类就可以继承和拥有A的所有属性和方法
那么如何实现继承呢?要知道继承是通过关键字extends来实现,extends表明当前的类是子类,extends 在英语中就是扩展的意思。
继承的注意点
1:子类不能直接访问父类中私有(private)的成员变量和方法
2:子类可以通过setter或getert,设置器和访问器来进行访问。
3:java中只支持单继承,不允许多重继承,一个子类只能有一个父类,一个父类可以派生出多个子类。
方法重写
定义;在子类中可以根据需要对从父类继承来的方法进行改造,也称为方法的重置,在程序执行时,子类的方法将覆盖父类的方法。
要求:
1重写方法必须和被重写方法具有相同的方法名称,参数列表,返回值类型
2重写方法不能使用比被重写方法更严格的访问权限
3重写和被重写的方法同时为static,或同时不为static.
4返回值类型是跟父类的返回值一样或者更小(子类类型)
下面举例代码
class Person {
public void eat() {
System.out.println("吃饭");
}
public void sleep() {
System.out.println("睡觉");
}
}
class Student extends Person {
}
class Teacher extends Person {
}
class ExtendsDemo {
public static void main(String[] args) {
Student s = new Student();
s.eat();
s.sleep();
Teacher t = new Teacher();
t.eat();
t.sleep();
}
}