07.this和super的区别

作者: 今天庹 | 来源:发表于2018-09-19 21:29 被阅读0次

    this与super区别

    package com.itheima;
    /*
     * this和super的区别
     *          this:当前对象的应用
     *              调用子类的成员变量
     *              调用子类的成员方法
     *              在子类的构造方法第一行调用子类其他构造方法
     *          super:子类对象的父类引用
     *              调用父类的成员变量
     *              调用父类的成员方法
     *              在子类的构造方法第一行调用父类的构造方法
     */
    public class ExtendsDemo7 {
        public static void main(String[] args) {
            Zi3 z = new Zi3();
            z.function();
        }
    }
    
    class Die3 {
        int num = 10;
        
        public Die3() {
            System.out.println("我是父类无参构造");
        }
        
        public Die3(int num) {
            System.out.println("我是父类有参构造");
        }
        
        public void method() {
            System.out.println("我是父类的方法");
        }
    }
    
    class Zi3 extends Die3 {
        int num = 30;
        
        public Zi3() {
    //      this(1);//第一行不调用子类其他构造或者是父类构造,默认调用父类无参构造
            super();
            System.out.println("我是子类无参构造");
        }
        
        public Zi3(int num) {
            System.out.println("我是子类有参构造");
        }
        
        public void method() {
            System.out.println("我是子类的方法");
        }
        
        public void function() {
    //      this.num = 50;
    //      System.out.println("num:"+num);
    //      this.method();
            
    //      super.num = 30;
    //      super.method();
            
            System.out.println("num:"+this.num);//如果子类中没有num变量但父类中有则使用this关键字也会调用父类的变量num
        }
    }
    

    相关文章

      网友评论

        本文标题:07.this和super的区别

        本文链接:https://www.haomeiwen.com/subject/sbimnftx.html