super();,它和this();又有什么区别呢?

class People {
    People() {
        System.out.println("我是人");
    }
}

class Student extends People {

    Student(int a, String name) {
        this(a);
        System.out.println(a);
        System.out.println(name);

    }

    Student(int b) {
        super();
        System.out.println(++b);
    }

}

class Student2 extends People {

}

class Demo1 {
    public static void main(String[] args) {
        Student s = new Student(4, "李帅");
        
    }
}

这段代码不知道能不能看懂?首先先介绍一下super,我们之前调用子类方法,可以很爽的使用父类中的属性和方法,它为什么可以调用父类的东西?那是因为有super这个东西,在你创建子类对象时,有一个隐式的构造方法,在这个隐式的构造方法中第一行又有一个super();调用了父类的构造方法,构造方法具有创建对象的功能,所以在创建子类对象时,父类就也跟着创建了。
上面的代码有一个this();的传递,this();是调用其它构造方法的。

class Pone {
    void call() {
        System.out.println("我只能打电话");
    }
}

class Newpone {
    void call() {
        System.out.println("我不仅能打电话还能聊天");
        System.out.println(this);
    }
}

class Demo1 {
    public static void main(String[] args) {
        Newpone n = new Newpone();
        n.call();
    }
}

上面的代码完成了对父类方法的重写,首先你能否注意到,call方法没有修饰符,那么这个方法就是默认的,他的访问权限是包,后面会学到。
我们需要注意几个问题:
1.子类访问权限要小与夫类。2.super和this不同并不代表当前对象。他只能用于调用父类的方法。不要搞混了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 33,624评论 18 399
  • 1 面向对象No6 面向对象 OO Object Oriented 编程时以对象为单元,封装数据和逻辑,以此提...
    征程_Journey阅读 4,913评论 0 2
  • (一)Java部分 1、列举出JAVA中6个比较常用的包【天威诚信面试题】 【参考答案】 java.lang;ja...
    独云阅读 11,952评论 0 62
  • 一路走来,有过多少辛酸苦辣只有自己最清楚!人生路漫漫,该拼就拼,该干嘛就干嘛,不要说“不”,因为它你永远放不开自己...
    微笑着加油_阅读 1,495评论 0 0
  • 我是一名三线城市的大学生。城市紧邻京津。我的家乡也是北京南下的第一站。而这几天的京津冀则是雾霾笼罩 没上幼儿园便...
    奇数小鱼阅读 1,396评论 0 0

友情链接更多精彩内容