对于访问父类的变量我们到底应该如何做??
1. 直接访问通过方法访问父类的变量:
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. 第二种方法通过继承访问父类的变量:
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; }
通过上面的方法我们都可以访问到变量,那么到底哪种访问符合便准的编程规范呢,我很是疑惑?
这是我在看一些源码中时发现的。而源码中更多的是以下的编码格式
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; } }
这样设计到底起到了什么好处啊??希望给予正解......
相关推荐
在Java编程语言中,子类继承父类是一种常见的特性,它允许子类扩展或复用父类的功能。当我们创建一个子类对象并将其赋值给父类引用时,这种行为被称为向上转型(Upcasting)。这一过程是自动且安全的,因为子类对象...
在 Java 中,使用 `extends` 关键字可以实现继承关系,子类可以继承父类的属性和方法,并可以重写父类的方法。使用 `super` 关键字可以引用父类的成分,访问父类中定义的属性和方法。 在 Java 中,可以使用多态性来...
文章围绕子类继承父类成员的过程、成员变量及方法的赋值、重写、覆盖等问题展开讨论,旨在帮助读者更好地理解Java继承中的重点与难点。 #### 关键词 - 继承机制 - 父类 - 子类 #### 一、超类的属性或方法在继承...
如果需要在子类中访问父类的私有成员,则需要在父类中提供公共或受保护的方法来获取这些值。子类通过重写父类的方法,可以提供特定于子类的行为,也可以使用`super`关键字调用父类的版本。 关于继承的更多细节,...
4. **访问器(getter和setter)**:在Java中,访问器(getter)用于获取类的私有成员变量的值,而设置器(setter)用于设置这些变量的值。这样做是为了实现封装,保护数据不被外部直接访问。例如,对于一个名为`age`...
"浅谈java继承中是否创建父类对象" 在 Java 中,继承是一个非常重要的概念,它允许子类继承父类的属性和方法。但是,一个常见的问题是, Java 中的继承是否创建父类对象?在这篇文章中,我们将深入探讨这个问题,并...
变量和方法覆盖和隐藏的不同:一个类的实例无法通过使用全局名或者强制自己转换为父类型,以访问父类中被隐藏的方法,然而强制转换子类为父类型之后,可以访问父类中被隐藏的变量。另外静态方法不能覆盖父类的实例...
此外,我们还可以看到,在子类中访问父类的 static 变量和方法时,实际上是访问父类的 static 变量和方法,而不是自己的。这是因为 static 变量和方法是属于类的,而不是实例的。 在多态方面,我们可以看到,变量时...
如果父类的成员变量是 int 类型,子类同名变量是 String 类型,同名的父类变量也会被覆盖。如果想访问父类的同名变量,可以使用 super 关键字或者父类类名。 重写父类的方法 子类除了增加新的成员变量和方法外,还...
成员变量的覆盖(有时会被误认为是“重写”)是理解Java继承机制的关键之一。本文将详细解释成员变量覆盖的基本概念,并通过示例代码来展示这一现象。 #### 成员变量覆盖的基本概念 成员变量覆盖是指在子类中声明...
继承机制使得子类可以直接访问父类的方法和属性,但也可以覆盖或扩展它们的功能。 #### 2. 继承与重写 ```java class A extends S { float x; // 构造函数 A(int b, float c) { n = b; x = c; } // 成员...
- 在Java中,一个类只能直接继承一个父类,但可以实现多个接口。接口中的方法默认是抽象的,所以子类必须提供这些方法的实现。在Python中,通过多重继承可以同时继承多个父类。 综上所述,程序执行顺序的基本原则...
那么子类继承了父类的protected、public成员变量作为子类的成员变量,并且继承了父类的protected、public方法,继承的成员或方法的访问权限保持不变,但子类不能继承父类的友好变量和友好方法。 源代码: public...
在Java编程语言中,类作为成员变量是一种常见的设计模式,它允许我们将一个对象实例嵌套在另一个类的内部,以此来实现数据封装和模块化。这种做法有助于组织代码,提高可读性和可维护性。下面将详细介绍如何在Java中...
在Java编程语言中,继承是面向对象特性的重要组成部分,它允许一个类(子类)从另一个类(父类)继承属性和方法。这种机制有助于代码重用和构建复杂的类层次结构。当我们谈论“java中与继承有关的程序内存分析”时,...
super 关键字可以用来访问父类的成员变量和方法。 本章主要讲解了 Java 中的继承和多态机制,包括继承的基本知识、父类和子类的关系、继承的好处等。此外,还讲解了 Java 中的访问权限、final 关键字和 super ...
在上述代码中,`Child`类就是`Parent`类的子类,它可以直接访问`Parent`类中的`commonVariable`变量和`commonMethod()`方法。这样,我们就可以在不重复编写相同代码的情况下,为不同的类提供共有的功能。 然而,有...
这种设计模式有助于代码重用,使得子类可以继承父类的属性和方法,并且可以添加新的功能或覆盖已有的行为。本实例将通过`Tryextend.java`文件展示如何在Java中实现继承。 首先,让我们理解继承的基本语法。在Java中...
### Java之中的静态变量与静态方法的继承与覆盖问题 #### 静态变量与静态方法的基本概念 在Java编程语言中,静态变量(也称为类变量)和静态方法(也称为类方法)是由`static`关键字修饰的成员变量和成员方法。...