zoukankan      html  css  js  c++  java
  • 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. }

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

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

  • 相关阅读:
    Repository模式介绍汇总
    EasyUI实例源码
    java callable
    Java线程:Callable和Future
    guava cache学习
    ESG操作指南
    spring,spring mvc之所以起作用是因为开启了注解解释器,即spring的annotation on
    sss
    一对多多对多的建表原则
    mybatis collection标签和association标签(一对多,一对一)转载
  • 原文地址:https://www.cnblogs.com/bjanzhuo/p/3576070.html
Copyright © 2011-2022 走看看