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

来源:互联网 发布:卫星机顶盒改网络电视 编辑:程序博客网 时间:2024/04/26 16:21

对于访问父类的变量我们到底应该如何做??

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. }

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. }

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

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

源码常用方式代码 复制代码 收藏代码
  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. }

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