其他分享
首页 > 其他分享> > 154/155继承中成员变量的访问特点和重命名的三种变量

154/155继承中成员变量的访问特点和重命名的三种变量

作者:互联网

继承中成员变量的访问特点

在父子类的继承关系当中,如果成员变量重名,则创建子类对象时,访问有两种方式:
直接通过子类对象访问成员变量:
  等号左边是谁,就优先用谁,没有则向上找。

间接通过成员方法访问成员变量:
  该方法属于谁,就优先用谁,没有则向上找。

创建父类

public class Fu {
    int numfu =20;
    int num = 100;
}

创建子类继承父类

 

复制代码
public class Zi extends Fu{
    int numZi = 20;
    int num = 200;
    public void method(){
        //因为本类当当中有num,所以这里用的事本来的num
        System.out.println(num);
    }
}

测试类

 1 public static void main(String[] args) {
 2         Fu fu = new Fu(); //创建父类对象
 3         System.out.println(fu.numfu);
 4         //只能使用父类的东西,没有任何子类内容
 5         System.out. println( "======E====");
 6         Zi zi = new Zi();
 7         System.out.println(zi.numfu);
 8         System.out.println(zi.numZi);
 9         System.out.println( "=ss=s=s=a==");
10         //等号左边是谁,就优先用谁
11         System.out.println(zi.numZi);
12       //  System.out.println(Zi.num); //到处都没有,编译报错!
13          System.out.println( "==z=z======");
14         //这个方法是子类的,优先用子类的,没有再向上找
15                //这个方法是在父类当中定义的,
16         zi.method();
17     }

 

区分子类方法中重名的三种变量

局部变量:
  直接写成员变量名
本类的成员变量:
  this.成员变量名
父类的成员变量:
  super.成员变量名

 

父类

public class Fu {
    int numfu =20;
    int num = 100;
}

子类继承父类

public class Zi extends Fu{
    int numZi = 20;
    int num = 200;
    public void method(){
        //因为本类当当中有num,所以这里用的事本来的num
        System.out.println(num);
    }
}

测试类

public static void main( String[] args ) {
  Zi zi = new Zi();
  zi.method();
}

标签:155,变量,int,System,println,num,154,public,out
来源: https://www.cnblogs.com/agzq/p/16443560.html