8.7 属性覆盖 ---- this super的区别

demo

class Channel {
    String info = "www.mldn.cn";// 非私有属性;默认default,private不可访问;
}

class DatabaseChannel extends Channel {
    int info = 12;
    public void fun(){
        System.out.println("[父类info成员属性]" + super.info);
        System.out.println("【子类info成员属性】" + this.info);//-先查找本类是否有info属性,本类如没有,找父类中info属性
    }
}

public class HelloWorld {
    public static void main(String args[]){
        DatabaseChannel channel = new DatabaseChannel();
        channel.fun();
    }
}

super和this的区别----常见面试题

  • 1.this表示先从本类查找所需要都属性和方法,如果本类不存在,则查找父类;super不查找子类,直接查找父类;
  • 2.都可以在进行构造方法调用时,this()调用的时本类构造,super()是由子类调用父类构造;2个语句都必须放在构造语句首行;所以不能够同时出现;
  • 3.this可以表示当前对象;
posted @ 2023-06-07 17:11  盘思动  阅读(15)  评论(0)    收藏  举报