zoukankan      html  css  js  c++  java
  • this and super

    this 和 super 的区别:this, 先从本类找属性和方法,本类找不到再从父类找。super, 从父类找。
    this 和 super 都可以调用构造方法,所以this() 和 super() 不可以同时出现。
    public class Person {
    }
    public class Student extends Person {
        String name;
        public Student(String name) {
            super();
    //        this();
        }
        public Student() {}
    }


    class FatherClass {
        public int value;
        public void f() {
            value = 100;
            System.out.println("FatherClass,value = " + value);
        }
    }
    
    class ChildClass extends FatherClass {
        public int value;
        public void f() {
            super.f();
            value = 200;
            System.out.println("ChildClass,value = " + value);
            System.out.println(value);
            System.out.println(super.value);
        }
    }
    
    public class Demo {
        public static void main(String[] args) {
            ChildClass cc = new ChildClass();
            cc.f();
        }
    }
    View Code

    画图分析:

     

     问题:

    class Person {
        public String name;
        public String location;
        Person (String name) {
            this.name = name;
            location = "beijing";
        }
        Person (String name, String location) {
            this.name = name;
            this.location = location;
        }
        public String info() {
            return "name:" + name + ",location:" + location;
        }
    }
    
    class Student extends Person {
        private String school;
        Student(String name, String school) {
            // 这个地方应该调用父类无参的构造方法,但父类没有无参的构造方法,但实际上并没有调用,下面的"xxx"可以打印出来。?
            this(name, "benjing",school);
        }
        public Student(String name, String location, String school) {
            super(name, location);
            this.school = school;
        }
    }
    
    public class Demo {
        public static void main(String[] args) {
            new Student("c", "s1");
            System.out.println("xxx");
        }
    }
  • 相关阅读:
    PL/SQL Developer使用技巧、快捷键(转发)
    Java 获取随机日期
    jsonArray和Java List对象互转,日期处理
    ExtJs grid单选,多选
    ExtJs 下拉单联动,次级下拉框查询模式
    ExtJs 日期相加,Grid表格列可编辑
    转:Java阳历转农历
    转:Java 计算2个时间相差多少年,多少个月,多少天的几种方式
    钥匙计数之一
    LianLianKan
  • 原文地址:https://www.cnblogs.com/Mike_Chang/p/7062072.html
Copyright © 2011-2022 走看看