java继承中的public 和private 小试

文章代码很简单 主要是测试类之间的publicprivate在继承直接的特性

首先我们写三个类  分别为 person ,person2,person3     (有点不专业希望见谅比较只要测试出我们想要的就可以了)
然后person2继承person, person3继承person2

 

public class person {
        private int a;
        private int b;
        private int c;
        
        public person(int a, int b, int c) {
               super();
               this.a = a;
               this.b = b;
               this.c = c;
        }
        
        public int getA() {
               return a;
        }
        public void setA(int a) {
               this.a = a;
        }
        public int getB() {
               return b;
        }
        public void setB(int b) {
               this.b = b;
        }
        public int getC() {
               return c;
        }
        public void setC(int c) {
               this.c = c;
        }
        
        
}
写完Person类 按住ctrl+o可以看到如图
现在类里面有私有成员变量a ,b ,c
 
 
继续观察
public class person2 extends person{
        public person2(int a,int b,int c){
               super(a,b,c);
        }
        public int get(){
               return this.getA();
        }
        
        public static void main(String args[]){
               person3 t = new person3(1,2,3);
               System.out.println(t.get());
        }
        
 
}
现在用ctrl+o查看类可能看不得父类也就是person类的任何信息 OK 随便在一个方法里面输入this. 来看这个person2的属性
发现person类里面的a,b,c私有全部没掉  只有对应的公有方法get和set 也就是说私有的没继承到而共有的全部继承到了
但是。。。但是。。。注意看person2里面的 main()函数 和构造方法  
虽然Person类里面的a,b,c没被继承 但是子类还是照样可以通过 构造函数super() 给父类的私有成员赋值
同时来对这些没有继承过来的私有变量进行操作的
到此 输出的结果是  1
做个小总结:
   person2继承了person的所有共有方法,但是没继承person的私有变量,而只能通过从pseron那继承来的共有的对应的操作这些私有变量的方法和super()方法来操作这些没有继承的变量,而如果父类person里面没有给出对这些私有变量的操作方法,那么Person2将完全断绝与这些私有变量的关系。
 
继续做小测试:
  我们写person3这个类
 
public class person3 extends person2{
 
        public person3(int a, int b, int c) {
               super(a, b, c);
               a = this.get();
               b = this.getA();
        }
        
        public static void main(String args[]){
               person3 t = new person3(1,2,3);
               System.out.println(t.get());
        }
 
}
代码也很简单 。。。通过这个小代码  发现 person3也继承了person的所有公有方法

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值