一、继承基础概念
(1)继承的定义:
当多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承这个类即可。
(2)多个类可以称为子类,单独这个类称为父类(超类或者基类)。
(3)语法格式:
class A extends B { }
(4)作用:
提高了代码的复用性。
让类与类之间产生了关系,为多态提供了前提。
(5)java只支持单继承,不支持多重继承。
但是java中可以多层继承:
class B extend A{};
class C extend B{};
class D extend C{};
二、继承中成员变量 (1)下面代码的意思是:(在子类和父类有相同名称的属性(变量)时)子类继承父类,实例化子类对象后,通过子类对象访问父类的属性。
class Fu{
int age=45;
}
class Zi extends Fu{
int age=18;
void show(){
System.out.println(super.age);//引入super关键字,相当于this关键字.
}
}
class ExtendsDemo1{
public static void main(String[] args){
Zi zi =new Zi();
zi.show();
}
}
三、继承中成员函数
子类继承父类之后,通过子类调用某方法时,如果该方法在子类对象中,就使用该方法,如果子类中没有,再去父类中查找。如果方法在子夫类中都有,那么,就出现了方法的重写。
方法的重写(覆盖):
- 定义:子类中出现和父类一模一样的方法时,会出现覆盖操作,也称为重写或覆盖。
- 重写方法必须和被重写方法具有相同的方法名称、参数列表和返回值;类型。
- 覆盖时,子类方法权限一定要大于等于父类方法权限。
- 静态只能覆盖静态。
- 父类中的私有方法不可以被覆盖。
方法重载与方法重写的区别?
方法的重载:发生在一个类当中。
定义:方法名相同,参数个数或者参数类型不同,与方法的返回值无关。
方法的重写:发生在子夫类当中;
定义:发生在子父类当中,方法名、参数个数与类型、返回值都相同。