继承
什么是继承
简单来说,继承就是一个类继承了另一个类的成员变量和方法。在java中只支持单继承,即一个子类只能拥有一个父类
Object类
Object类是Java所有类的根基类,当一个类没有显式的继承关系的时候,默认情况就是继承Object类
继承的优势
继承在一定程度上提高了代码的复用性,但是同时也提高了代码调用的复杂度
继承的用法
public class Test{
public static void main(String[] args){
Child child = new Child();
child.printFather();
child.printChild();
}
}
class Fater{
Fater(){
}
public void printFather(){
System.out.println("I'm Father");
}
}
class Child extends Fater{
Child(){
}
public void printChild(){
System.out.println("I'm Child");
}
}
super关键字
> 当创建对象的时候,会先执行父类的构造方法
什么是super
super的意思就是当前类对象的父类,super的用法跟this的用法一样
super关键字的作用
super关键字通常用来区分子类和父类的同名变量或者同名方法,super.对象 或者 super.成员变量。
super()的作用
1、super()调用父类的构造方法,如果里面不加参数,默认就是调用父类的无参构造方法
2、当父类中不存在无参构造方法时,如果子类再调用super()无参的构造方法,程序就会报错
3、super()默认存在每个构造函数的首行。
4、super()和this()在一个构造器中只能存在一个,并且都是在首行,如果两个都不加,默认就是super()
子类重写父类的方法
什么叫重写
在子类中定义了和父类中同名的方法,我们将这个称之为重写方法
为什么要重写父类的方法
父类的功能不能满足子类的需求,我们就重写父类的方法。子类在父类的基础上进行了扩展。
如何确定一个方法是不是重写的方法
在子类的方法上面加上@Override注解,如果不报错就证明是重写的方法
重写方法的前提
1、一定要发生继承关系。
2、父类和子类的方法名相同
3、参数列表要相同
4、返回类型要相同
5、权限修饰符也要相同
实例
public class Test {
public static void main(String[] args) {
Dog dog = new Dog();
dog.eat();
dog.i;
}
}
class Animal{
public int i = 1;
public void eat() {
System.out.println("animal eat");
}
}
class Dog extends Animal{
@Override
public void eat() {
System.out.println("dog eat");
}
}