码迷,mamicode.com
首页 > 其他好文 > 详细

super关键字小结

时间:2017-12-20 13:49:02      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:person   构造方法   int   test   论坛   代码   post   ext   一个   

1.父类

public class Person {

    private String name = "李四";

    private int age;

    public Person() {
        System.out.println("Person的构造方法执行了!");
        System.out.println(this.getClass().hashCode());
    }

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

2.子类

public class Student extends Person {

    private double mark;

    private int num;

    private String name = "赵六";

    public Student() {
        // 系统会默认有一个super();
        super();
        System.out.println("Student的构造方法执行了");
        System.out.println(this.getClass().hashCode());
    }

    public Student(double mark, int num) {
        // super可以用在构造函数中,为了代码的重复利用,还可以初始化从父类继承过来的属性
        super("张三", 10);
        this.mark = mark;
        this.num = num;
    }

    public void study() {
        System.out.println(super.getName() + "在学习!");
    }

    // ==================================================================

    public double getMark() {
        return mark;
    }

    public int getNum() {
        return num;
    }

    public void setMark(double mark) {
        this.mark = mark;
    }

    public void setNum(int num) {
        this.num = num;
    }
}

3.测试类:

public class Test {
    public static void main(String[] args) {
        /**
         * 在创建子类对象的时候会先调用父类的构造方法
         * 调用父类的构造方法仅仅是为了给继承过来的父类属性初始化而已,并不会创建父类对象!
         */
        Student student1 = new Student();
        Student student2 = new Student(100.0, 001);
        student2.study();
    }
}

 

在此,我也翻了很多论坛,调用构造方法并不一定会创建对象,new 的时候才一定会创建对象,,也就是构造方法的执行不一定会创建对象

super跟this不同,this是一个引用,是一个地址,而super仅仅代表父类的特征,特征,特征

 

super关键字小结

标签:person   构造方法   int   test   论坛   代码   post   ext   一个   

原文地址:http://www.cnblogs.com/zhangjianbing/p/8072821.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!