继承
继承(extends)的概念:
- 继承就是可以将一个类通过另一个类来构建,原来的类就是父类,新的类就是子类。
- Java中只支持单根继承,即每个类当中只能有一个直接父类。不允许多重继承。
特点:
- 子类会自动拥有父类的所有非private修饰的属性和方法。
- extends关键字:继承关系,表示一个类继承自另一个类,extends的左边为子类,右边为父类,父类也称为:超类、基类。子类继承父类,自动拥有父类的所有成员(成员变量和方法),不代表能够访问父类的所有内容,父类private的属性和方法是不能访问的。
好处:
- 继承的出现提高了代码的复用性,提高开发效率。
- 继承的出现让类与类之间产生了关系,衍生出了多态。
注意:
- 静态方法可以被继承(严格来说叫隐藏),但是不能被重写,因此静态方法不能存在多态。
- 整个继承体系,越向上越抽象,越向下越具体。
- 父类的构造方法是不可以被继承的。
一、Super关键字
意义:在java类中使用super来引用父类的成分。
- super可用于访问父类中定义的属性。
- super可用于调用父类中定义的成员方法。
- super可用于在子类构造方法中调用父类的构造方法。
- super的追溯不仅限于直接父类。
用法:
- 1.使用super可以调用父类的构造方法(对super的调用必须是构造方法中的第一个语句)
- 2.使用super可以明确指定调用父类的成员(方法和属性)。
分析:
- 在JAVA类中使用super来引用父类的成分,用this来引用当前对象,如果一个类从另一个类继承,我们new这个子类的实例对象的时候,这个子类对象里面会有一个父类对象。
- 子类构造器会自动调用父类的默认构造器super();想显示调用父类某个构造器,可以通过super关键字来调用。super(200);
注意:
- this()和super()不能同时在同一个方法中使用,因为要求都要在第一行。
- 要是在子类用没有指定调用父类的那个构造器,此时子类调用的是父类的默认构造器,如果父类中没有默认无参构造方法(父类中只写了带参数的构造方法,此时默认的构造方法就丢失)时,子类就会报错,编译不通过。
二、方法的重写(覆盖)
overload 重载
方法的覆盖(重写):overWrite override
面试题:
重载和重写是什么?两者的区别?
- 重载是在同一个类中相同方法名、不同参数列表的方法,在方法的重载,重写是在父子关系中产生的,子类继承了父类,重新编写了父类的方法,并且方法名、参数列表、返回值都必须一样。子类的修饰符需要和父类一样或更宽阔。
为什么要继承:主要就是为了代码重用。如果方法通过继承权限越来越小,就违背了代码的重用了。
三、Final关键字
- Final修饰类,被final修饰的类不能有子类。
- Final修饰方法,被final修饰的方法不能被重写。
- Final修饰变量,被final修饰的变量称之为常量。如果声明时没有赋值,可以在构造方法中进行初始化。在其他地方都不可以再进行赋值。
四、结束语
希望多多交流,多多关注,共同成就梦想