继承(概念、重写父类方法、super关键字)| final关键字

一、类的继承
继承的概念:
在现有类的基础上去构建新的类,新的类叫做子类,现有类叫做父类。需要注意,子类会自动拥有父类所有可以继承的方法和属性。
如何定义继承的类:
一个类继承一个类需要使用extends关键字
例子(来自传智播客图书)

class Animal{
    String name;
    void shout (){
        System.out.print("这是一只会叫的动物");
    }
}

class Dog extends Aniaml{
    public void printName(){
        System.out.print("这只动物的名字是"+name);
    }
}

public class Test{
    public static void main (String [] args){
        Dog dog=new Dog();
        dog.name="牧羊犬";//为dog的name属性赋值
        dog.printName();//调用dog的printName方法
        dog.shout;//调用dog继承来的shout方法
    }
}

java只允许单继承,即一个类只能继承一个类。
java允许多个类继承一个类
java也允许多重继承,即a继承b,b继承c

重写父类方法:
重写父类方法就是在子类中把父类的方法进行一些修改
重写的方法需要和父类方法具有相同的方法名,参数列表,返回值类型
子类重写父类的方法时,不能使用比父类方法更严格的修饰符

super关键字
当我们把父类方法重写后,再实例化子类对象会发现该对象无法调用没被重写的父类方法。使用super关键字就可以解决这种问题
①:使用super关键字调用父类的成员变量和成员方法
使用格式是直接用super关键字调用需要调用方法 super.需要调用的成员方法/变量
②:使用super还可以调用父类的构造方法(在子类构造方法中)
需要注意:使用super调用父类构造方法的代码必须位于子类构造方法第一行。
前面讲this关键字的时候说过构造方法不能像其他方法那样随便调用,在构造方法中使用this调用其他构造方法的语句必须位于第一行且只能出现一次。(构造方法的调用必须是同一个类中的构造方法)

二、final关键字
final可以修饰类、方法、变量
final修饰的类不能被继承,修饰的方法不能被子类重写,修饰的变量成为常量,只能赋值一次。
修饰类

final class Animal{

}

修饰方法

public final void shout(){

}

修饰变量

final int num=2;

你可能感兴趣的:(java基础)