java中到底是继承父类变量还是访问父类变量

本文探讨了两种访问父类变量的方法:通过方法访问和直接访问,并分析了这两种方法的优劣。推荐使用通过方法访问的方式,因为它可以提供更好的封装性和安全性。
对于访问父类的变量我们到底应该如何做??

1.  直接访问通过方法访问父类的变量:

第一种情况代码 复制代码  收藏代码
  1. package com.huawei.test   
  2. public class ProtectedVariable extends Parent{     
  3.     public static void main(String[] args) {   
  4.         Parent v1 = new ProtectedVariable();   
  5.         v1.setName("keke8614");   
  6.         System.out.println(v1.getName());   
  7.         Parent v2 = new ProtectedVariable();   
  8.         v2.setName("keke8615");   
  9.         System.out.println(v2.getName());   
  10.         System.out.println(v1.getName());   
  11.     }   
  12. }   
  13. class Parent{   
  14.     private String name;   
  15.     public String getName() {   
  16.         return name;   
  17.     }   
  18.     public void setName(String name) {   
  19.         this.name = name;   
  20.     }   
  21. }  
package com.huawei.test
public class ProtectedVariable extends Parent{	
	public static void main(String[] args) {
		Parent v1 = new ProtectedVariable();
		v1.setName("keke8614");
		System.out.println(v1.getName());
		Parent v2 = new ProtectedVariable();
		v2.setName("keke8615");
		System.out.println(v2.getName());
		System.out.println(v1.getName());
	}
}
class Parent{
	private String name;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
}

 2. 第二种方法通过继承访问父类的变量:

第二种方法代码 复制代码  收藏代码
  1. package com.huawei.test;   
  2. public class ProtectedVariable extends Parent{   
  3.     public static void main(String[] args) {   
  4.         Parent v1 = new ProtectedVariable();   
  5.         v1.name = "keke8614";   
  6.         System.out.println(v1.name);   
  7.         Parent v2 = new ProtectedVariable();   
  8.         v2.name = "keke8615";   
  9.         System.out.println(v1.name);   
  10.         System.out.println(v2.name);   
  11.     }   
  12. }   
  13. class Parent{   
  14.     protected String name;   
  15. }  
package com.huawei.test;
public class ProtectedVariable extends Parent{
	public static void main(String[] args) {
		Parent v1 = new ProtectedVariable();
		v1.name = "keke8614";
		System.out.println(v1.name);
		Parent v2 = new ProtectedVariable();
		v2.name = "keke8615";
		System.out.println(v1.name);
		System.out.println(v2.name);
	}
}
class Parent{
	protected String name;
}

       

       通过上面的方法我们都可以访问到变量,那么到底哪种访问符合便准的编程规范呢,我很是疑惑?

这是我在看一些源码中时发现的。而源码中更多的是以下的编码格式

 

源码常用方式代码 复制代码  收藏代码
  1. package com.huawei.test;   
  2. public class ProtectedVariable extends Parent{     
  3.     public static void main(String[] args) {   
  4.         Parent v1 = new ProtectedVariable();   
  5.         v1.setName("keke8614");   
  6.         System.out.println(v1.getName());   
  7.         Parent v2 = new ProtectedVariable();   
  8.         v2.setName("keke8615");   
  9.         System.out.println(v2.getName());   
  10.         System.out.println(v1.getName());   
  11.     }   
  12. }   
  13. class Parent{   
  14.     protected String name;   
  15.     public String getName() {   
  16.         //可能对name进行操作   
  17.         return name;   
  18.     }   
  19.     public void setName(String name) {   
  20.         //可能对name进行操作   
  21.         this.name = name;   
  22.     }   
  23. }  
package com.huawei.test;
public class ProtectedVariable extends Parent{	
	public static void main(String[] args) {
		Parent v1 = new ProtectedVariable();
		v1.setName("keke8614");
		System.out.println(v1.getName());
		Parent v2 = new ProtectedVariable();
		v2.setName("keke8615");
		System.out.println(v2.getName());
		System.out.println(v1.getName());
	}
}
class Parent{
	protected String name;
	public String getName() {
		//可能对name进行操作
		return name;
	}
	public void setName(String name) {
		//可能对name进行操作
		this.name = name;
	}
}

 

    这样设计到底起到了什么好处啊??希望给予正解......

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值