Java7 super关键字与覆盖应用思想

super调用父类方法和父类变量
覆盖(只发生在方法上):当父类和子类出现一模一样的方法时,优先运行子类方法
返回值类型 函数名 参数列表都一致

class Dad {
    void study(){
        System.out.println("good1");
}   }
class Son extends Dad{
    
    void study(){
        System.out.println("good");
}}
public class ExtendsDemo {

    public static void main(String[] args) {
    Son son=new Son();
    son.study();
    }}

思想:手机生产

public class FugaiDemo {

    public static void main(String[] args) {
        NewPhone p=new NewPhone();
        p.call();
    }
}
class Phone{
    public void set() {}
    public void photo() {}
    public void call() {
        System.out.println("number");
    }
}
class NewPhone extends Phone{
    public void call() {
        //System.out.println("number");
              super.call();
        System.out.println("pitc");
        System.out.println("ling");
    }
}

直接在原手机上更新功能更改工程量大,维护性低
父类已定义来电功能,可以把方法直接拿过来用
但子类对于功能的内容要有自己定义,保留父类功能的声明,建立子类功能特有的内容。实行覆盖

注意:子类方法覆盖父类方法时,必须保证子类方法权限的大于父类


Super关键字

子类对象初始化,都会先访问父类构造函数
因为子类继承父类的内容,所以创建对象时必须先看父类如何初始化的。

class Fu{
    int num;
    Fu(){
        num=4;
        System.out.println("fu run");
    }}
class  Zi extends Fu{
    
    Zi(){
                //super();
        System.out.println("zi run");
    }}
public class Demo1 {
  public static void main(String[] args) {
    Zi zi=new Zi();}}

子类构造方法都自带一个默认的super();方法引用父类构造函数

class Fu{

    Fu(){
            System.out.println("fu run");
        }
    Fu(int num)
    {
        System.out.println(num);
    }}
class  Zi extends Fu{
    Zi()
    {    //super();
        System.out.println("zi run");
    }
    Zi(int num)
    {
        System.out.println(num);
}}
public class Demo1 {
  public static void main(String[] args) {
    Zi zi=new Zi(5);
}}

子类构造函数自带super();自动引用父类空参数构造函数

结果为:fu run 5

当父类没有空参数构造函数时,子类通过显示定义super语句指定访问父类的构造函数

Zi(int num)
    {     super(num);
        System.out.println(num);
}

用来调用父类构造函数的super();语句必须定义在子类的第一行,因为父类的初始化要先完成。


问题1
this 和super调用构造函数 可以同时存在吗?
答:不可以,因为都要放在构造函数第一行。
为什么需要定义在第一行?
答:因为构造函数初始化要先执行。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容