`
phoenix520
  • 浏览: 140291 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Java 构造函数中的super()

    博客分类:
  • Java
阅读更多
public class Test {
    public static void main(String[] args) {
        new Son("baidu");
        new Son();
    }
}

class Farther{
    public Farther(){
        System.out.println("I am father");
    }

    public Farther(String name){
        System.out.println("I am father:"+name);
    }
}

class Son extends Farther{
    public Son(){
        System.out.println("I am son");
    }
    public Son(String name){
        //super("google");
        System.out.println("I am son:"+name);
    }
}

 Java在实例化一个对象的时候,如果没有显式使用super(),则会先调用父类的无参构造函数(不是和自己构造函数参数数量对应的那个),然后调用子类的构造函数,如果父类不是Object类,则一直向上追溯到Object类为止,super()只能在构造函数的第一行使用,在别的地方使用均为非法,一般情况下构造函数不用写super(),但是如果一个类有多个构造函数的时候,为了便于理解,往往要显式调用super()。

  上面代码的运行结果为:

I am father
I am son:baidu
I am father
I am son

分享到:
评论

相关推荐

    Java中this与super的区别

    super(参数):调用父类中的某一个构造函数(应该为构造函数中的第一条语句)。 this(参数):调用本类中另一种形式的构造函数(应该为构造函数中的第一条语句)。 要记住的几个关键点是: 在构造方法中this...

    Java中super的使用

     parameter-list指定超类中构造函数所需的任何形参,super()必须是在子类构造函数中执行的第一个语句。超类定义的任何形式的构造函数都可以被super()调用,被执行的构造函数是与实参相匹配的那一个。  当...

    java 静态非静态 字段方法 子类父类构造_初始化顺序!

    java 静态_非静态 字段_方法_代码块 子类父类构造_初始化顺序! 三个class 让你清清楚楚 第一个class java代码如下: package initialOrder; class Parent { // 静态变量 public static String p_StaticField...

    在Java中有两个非常特殊的关键词: this和super

    this和super ,这两个变量在使用前都是不需要声明的.this变量使用在一个成员函数的内部,指向当前对象,当前对象指的是调用当前正在执行方法的那个对象.super变量是直接指向超类的构造函数,用来引用超类中的变量和方法....

    Java中super关键字

    1.子类的构造函数如果要引用super的话,必须把super放在函数的首位,如果想用super继承父类构造的方法,但是没有放在第一行的话,那么在super之前的语句,肯定是为了满足自己想要完成某些行为的语句,但是又用了...

    常见JAVA基础_4

    1。Java中的继承有几种类型?试举例说明。 2。方法的继承,方法的覆盖,方法的重载各指的是什么?试举例说明。 3。子类中的父类成员何时初始化?...有CommonEmployee类和...如何在一个构造函数中调用另一个构造函数?

    java关键字总结

    总结了Java学习中的52个关键字(包括一些总结),...super 后加参数的是用来调用父类中具有相同形式的构造函数,this 后加 参数则调用的是当前具有相同参数的构造函数。 4>this通常指代当前对象,super 通常指带父类。

    Java开发技术大全(500个源代码).

    Super.java 一个基类 testOverload.java 测试方法的重载示例1 testOverload_1.java 测试方法的重载示例2 testOverload_2.java 测试方法的重载示例3 testOverload_3.java 测试方法的重载示例4 useConstructor....

    Java在窗口中添加树形菜单TreeView.rar

    //调用父类构造函数     DefaultMutableTreeNode root = new DefaultMutableTreeNode("设置"); //生成根节点   DefaultMutableTreeNode node1=new DefaultMutableTreeNode("常规"); //生成节点一   node1....

    java面试宝典2018版

    本书从实际出发,将Java程序员面试中常会考到的一些编程基础性问题,比如final、super类、构造函数等最易考到的基础考点,放在第2部分Java程序设计里面,希望能切切实实解决实际问题。 面试题通过一道题考一个专类...

    java面试800题

    (3) super.([paramlist]) //调用父类中的构造函数 在类方法中(static),不能使用this或super修饰符 " Q0045 Java中是怎样捕获异常的? "try { //statement01 } catch(Exception e) { //statement02 } finally { ...

    Java面试宝典2017版

    本书从实际出发,将Java程序员面试中常会考到的一些编程基础性问题,比如final、super类、构造函数等最易考到的基础考点,放在第2部分Java程序设计里面,希望能切切实实解决实际问题。 ? 深入性 面试题通过一道题...

    Java生成、修改文件夹和文件名.rar

    //调用父类构造函数  jtfPath=new JTextField(16); //实例化文件路径输入框  JButton jbFile=new JButton("选择"); //实例化文件选择按钮  JPanel panel=new JPanel(); //实例化面板,用于容纳输入框和按钮 ...

    由Person类派生出学生类Student和教师类Teacher

    由Person类派生出学生类Student和教师类Teacher,并为他们添加必要的数据,为这两个派生类编写必要的构造函数和析构函数。然后编写一个主函数对以上功能进行测试。 包括了很多的程序可供您参考!

    Java保存与读取文件.rar

    //调用父类构造函数  Container container=getContentPane(); //得到容器  Icon imageIcon=new ImageIcon("image.gif"); //实例化一个图标  writeIcon(imageIcon); //把图标写入到文件里(存储对象到文件) ...

    Java实现局域网内两点文件传输

    3. server类的构造函数通过调用 super(SERVER_PORT)来创建一个服务器端的Socket。 4. load()方法是一个循环,用于接收客户端的连接请求。每当接收到一个连接请求,就会创建一个新的线程来处理该连接。 5. Task类是一...

    Java用户名密码验证实例.rar

     public JPasswordFieldDemo() { //构造函数   super("JPasswordField演示"); //调用父类构造函数   Container container=getContentPane(); //得到容器   container.setLayout(new GridLayout(3, 2, 2, 2));...

    在窗体中实现滑块拖动-Java应用程序代码.rar

    //调用父类构造函数  panel=new GraphPanel(); //实例化面板  panel.setBackground(Color.orange); //设置面板背景色为橙色  xSlider=new JSlider( SwingConstants.HORIZONTAL,0,200,10); //实例化滑杆  ...

    nijs:DefineClass-对Java的OOP支持

    类具有默认构造函数和参数化构造函数。 从大多数基类开始,默认构造函数由继承链调用。 可以通过以下调用访问超级构造函数: this . __super . constructor ( parameterA ) ; 另外, this.__super可用于访问...

    java_base:java基础

    java_base Java语言及高级特性学习工程目录base_...super_class:super()方法替换执行父类的无参构造函数useClass:类类的使用dynamic_proxy java JDK及第三方库CGLIB实现的两个动态代理socket_proj java socket编程

Global site tag (gtag.js) - Google Analytics