java:继承

继承是多态的前提,没有继承,就没有多态

父类:叫基类,也叫超类

子类:也叫派生类

  子类可以拥有父类的(部分或者全部)内容,

  子类也可以有自己的内容

定义父类:就是定义一个普通的类

定义子类:public class 子类名称 extends 父类名称(){  }

 

继承中成员变量的访问特点:

在父子类继承关系中,如果成员变量重名时,创建子类对象时,访问成员变量有两种方式:

  直接通过子类对象访问成员变量:等于符号左边是谁,就优先调用谁,没有则向上查找

  间接通过成员方法访问成员变量:该方法属于谁,就优先调用谁,没有则向上查找

区分局部变量、子类成员变量和父类成员变量:

  局部变量:直接写变量名

  子类变量:this.变量名

  父类变量:super.变量名

public class son extends Farth{
    int num=200;
    public void m()
    {
        int num=300;
        System.out.println(num);//访问局部变量
        System.out.println(this.num);//访问子类变量
        System.out.println(super.num);//父类的变量
    }
}

 在父子类的继承关系中,如何调用成员方法:创建对象的等号左边是谁,就先调用谁,没有则向上查找(包括重名)

重写(override):

  在继承关系中,方法名一样,参数一样,

覆盖重写的注意事项:

  1:父子类之间方法的名称和参数一样,@override写在方法前面,用来检测方法是否符合重写规则

  2:子类方法的返回值范围必须小于或等于父类方法的返回值的范围

  例如:java.lang.Object类是所有类的最高父类,java.lang.String类是Object的子类

  3:子类的方法权限必须大于或等于父类的方法的权限修饰符

  public>protected>(default)>private  default不是关键字,表示什么都没有

重载(overload):

  方法名一样,参数不一样

在父子继承关系中,父子类构造方法的访问特点:

  1:子类构造方法中有一个默认隐含的super()调用,所以一定先调用父类的构造方法,再执行子类构造方法

  2:子类构造方法可以通过super关键字来调用父类重载构造

  3:super的父类构造调用,必须是子类构造方法的第一个分号语句,不能一个子类构造多次调用父类的构造

总结:子类必须调用父类的构造方法,不写则赠送一个super,写了则用写了的super,只能有一个super

 

super关键字的三种用法:

  1:在子类成员方法中,访问父类的成员变量

  2:在子类成员方法中,访问父类的成员方法

  3:在子类构造方法中,访问父类的构造方法

this关键字的三种用法:

  1:在本类成员方法中,访问本类的成员变量

  2:在本类成员方法中,访问本类的另一个成员方法

  3:在本类构造方法中,访问本类另一个构造方法

  注意:this关键字必须是构造方法的第一个语句,不能与super关键字同用。

java继承的三个特点:

  1:java语言是单继承的,一个子类只有一个父类

  2:java语言是多级继承

  3:一个子类的直接父类只有一个,但一个父类可以有多个子类

 

 

 

 

 

 

posted @ 2019-11-05 21:27  BatmanY  阅读(126)  评论(0)    收藏  举报