super关键字,super关键字和this关键字的区别

super关键字:
使用super可以调用父类的成分:父类的成员变量、父类的方法、父类的构造方法。

注意:使用super关键字和this关键字,均不能用在静态方法中,只能用在普通方法(实例方法)中。

访问属性:
示例:

父类
  public class FatherClass{
      public int age=18;
    }

子类

public class ChildClass extends FatherClass{
      public int age = 10;
 
      public void test1(){
        System.out.println(this.age);//这里将输出 10,访问的是自己(本类)的属性
      }
      public void test2(){
        System.out.println(super.age);//这里将输出 18,访问的是父类的属性
      }
      public void test3(){
      System.out.println(age);//这里将输出 10;默认情况,如果父类存在age属性,子类也存在age属性,直接访问age将是以 this.age 形势访问。但如果本类不存在age属性,则将以 super.age 的形势访问。
      }
      
    }


访问方法:
示例:

父类

  public class FatherClass{
      public void show(){
        System.out.println("Father类方法");
      }
    }

子类
  
public class ChildClass extends FatherClass{
      public void show(){
        System.out.println("Child类方法");
      }
      
      public void test1(){
        this.show();//这里将输出:Child类方法
      }
      public void test2(){
        super.show();//这里将输出:Father类方法
      }
      public void test3(){
      	show();//这里将输出:Child类方法;
        
      //默认情况,如果父类存在show()方法,子类也存在show()方法,直接访问show()方法将是以 this.show() 形势访问。但如果本类不存在show()方法,则将以 super.show() 的形势访问。
      }
      
    }

this和super的区别:
super 是使用在继承关系中,主要是用于子类调用父类的构造方法和普通方法
构造方法调用方式:super(参数列表);
普通方法调用方式:super.方法名称

this 只能在本类中使用 this(参数列表)或者this()




阅读更多
版权声明:本文为博主原创文章,转载注明文章出处即可。 https://blog.csdn.net/benxiaohai888/article/details/76364998
个人分类: javaSE
相关热词: super关键字
上一篇方法重写和方法重载
下一篇面向对象三大特征
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭