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

来源:互联网 发布:mac air 能玩什么游戏 编辑:程序博客网 时间:2024/06/08 01:36

一、类的继承
继承的概念:
在现有类的基础上去构建新的类,新的类叫做子类,现有类叫做父类。需要注意,子类会自动拥有父类所有可以继承的方法和属性。
如何定义继承的类:
一个类继承一个类需要使用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;
阅读全文
0 0
原创粉丝点击