下面程序的可读性不怎么好,可以说比较差吧,就凑合着看吧,就为了理解一下。
package cn.lifx.test;
public class SubParTest
{
public static void main(String[] args)
{
ParentClass pc = new ParentClass();
System.out.println(pc.publicValue);
System.out.println(pc.friendlyValue);
System.out.println(pc.protectedValue);
System.out.println(pc.getPrivaeValue());
pc.publicFun();
pc.friendlyFun();
pc.protectedFun();
System.out.println();
ParentClass psc = new SubClass();
System.out.println(psc.publicValue);
System.out.println(psc.friendlyValue);
System.out.println(psc.protectedValue);
System.out.println(psc.getPrivaeValue());
psc.publicFun();
psc.friendlyFun();
psc.protectedFun();
System.out.println();
SubClass sc = new SubClass();
System.out.println(sc.publicValue);
System.out.println(sc.friendlyValue);
System.out.println(sc.protectedValue);
System.out.println(sc.getPrivaeValue());
sc.publicFun();
sc.friendlyFun();
sc.protectedFun();
}
}
class SubClass extends ParentClass
{
public String publicValue = "sub_public_field";
String friendlyValue = "sub_friendly_field";
protected String protectedValue = "sub_protected_field";
private String privateValue = "sub_private_field";
public void publicFun()
{
System.out.println("sub_public_function()");
}
void friendlyFun()
{
System.out.println("sub_friendly_function()");
}
protected void protectedFun()
{
System.out.println("sub_protected_function()");
}
public String getPrivaeValue()
{
return this.privateValue;
}
}
class ParentClass
{
public String publicValue = "parent_public_field";
String friendlyValue = "parent_friendly_field";
protected String protectedValue = "parent_protected_field";
private String privateValue = "parent_private_field";
public void publicFun()
{
System.out.println("parent_public_function()");
}
void friendlyFun()
{
System.out.println("parent_friendly_function()");
}
protected void protectedFun()
{
System.out.println("parent_protected_function()");
}
public String getPrivaeValue()
{
return this.privateValue;
}
}
输出为:
parent_public_field
parent_friendly_field
parent_protected_field
parent_private_field
parent_public_function()
parent_friendly_function()
parent_protected_function()
parent_public_field
parent_friendly_field
parent_protected_field
sub_private_field
sub_public_function()
sub_friendly_function()
sub_protected_function()
sub_public_field
sub_friendly_field
sub_protected_field
sub_private_field
sub_public_function()
sub_friendly_function()
sub_protected_function()
分享到:
相关推荐
代理类是 Java 语言中的一种机制,使得我们可以在运行时创建一个代理类,继承自原始类,并且可以访问原始类的非公有成员变量或方法。 优点:这种方法可以在运行时创建一个代理类,继承自原始类,非常灵活。 缺点:...
访问权限修饰符是指在 Java 中用来控制类、方法和变量的访问权限的关键字。常见的访问权限修饰符有:public、private、protected 和 default。 五、static 修饰符 static 修饰符是指在 Java 中用来修饰类、方法和...
在提供的"Java访问权限控制源代码"中,可能包含示例类,这些类展示了如何使用不同的访问修饰符来控制类、变量和方法的可见性。`readme.md`文件可能包含了代码的介绍和使用指南。 通过学习和理解Java的访问权限控制...
Java 类变量和方法是编程语言Java的核心组成部分,它们定义了类的行为和属性。在这个文档中,我们将深入探讨这些概念。 首先,我们来看类的修饰符。在Java中,类可以被`public`、`abstract`或`final`修饰。`public`...
在Java编程语言中,访问权限控制是至关重要的一个部分,它确保了代码的封装性和安全性。本文将深入探讨Java中的访问权限验证,包括其概念、种类以及如何在实践中应用。 **一、访问权限概述** Java提供了四种不同的...
在Java编程语言中,处理同名的方法或变量是一项常见的挑战,尤其是在处理继承、包和类的层次结构时。为了理解如何有效地访问这些同名的成员,我们需要深入理解Java的命名规则、作用域、访问修饰符以及多态性。以下是...
然而,在继承过程中,可能会出现方法和变量的覆盖(Override)和隐藏(Hide)问题。这个问题对于理解Java类的继承机制和代码的运行行为非常重要。 首先,需要明确几个概念:覆盖与隐藏。方法覆盖发生时,子类提供一...
在Java编程语言中,方法继承、方法重载、方法覆盖是三个非常重要的概念。它们之间既有关联又有区别,掌握这些概念对于深入理解面向对象编程有着至关重要的作用。 #### 一、Java方法继承 **方法继承**是指在一个类...
由于 Java 语言的多态性使得可以用一个子类的实例赋值给一个父类的变量,而在一些情况下需要判断变量到底是一个什么类型的对象。 在 Java 中,数组也可以是同类收集(homogenous collections)或异类收集...
在Java编程语言中,变量的访问控制是通过四种访问修饰符来实现的,它们分别是`public`、`private`、`protected`以及默认的(无修饰符,也称为`default`)。这些修饰符决定了变量在类的不同部分以及不同类之间的可见...
在Java编程语言中,权限修饰符用于控制类、方法、变量等成员的访问级别。这有助于提高代码的安全性和封装性。本文将详细探讨Java中的五种权限修饰符:`public`、`protected`、`default`(也称为包访问权限)、`...
在Java中,访问控制是指对类成员变量和方法的访问权限的控制。Java提供了四种访问控制权限:public、private、protected和default。其中,public权限允许任何类访问,private权限只允许当前类访问,protected权限...
Java继承是面向对象编程中的一个核心概念,它允许一个类(子类)继承另一个类(父类)的属性和方法,从而实现代码的重用和扩展。在这个名为"java继承部分课件"的资料中,我们可以期待学习到关于Java继承的基础知识、...
在Java编程语言中,访问控制修饰符是用来定义类的成员(包括方法和变量)的可访问范围。了解这些修饰符的使用是Java基础知识的关键部分,它们对于理解和编写可维护、安全的代码至关重要。以下是Java中四种主要的访问...
(2)学生类Student继承Person,增加了学号信息,有两个构造方法Student()和Student(姓名,性别,年龄,学号),调用父类Person的构造方法对父类部分进行构造,在Student()中,默认学号为空字符串,在Student...
Java编程语言中的继承、接口和访问权限修饰符是面向对象编程的重要概念,它们共同构建了类与类之间复杂的关联和数据封装。以下是这些概念的详细解释: **多态性**: 多态性允许一个对象引用变量引用不同类型的子类...
这个思维导图详细描绘了Java继承的关键概念和实践,对初学者理解继承机制,以及在实际项目中如何有效利用继承进行代码设计非常有帮助。通过学习和实践这些知识点,开发者可以更好地设计出符合面向对象原则的软件系统...
在Java编程语言中,类作为成员变量是一种常见的设计模式,它允许我们将一个对象实例嵌套在另一个类的内部,以此来实现数据封装和模块化。这种做法有助于组织代码,提高可读性和可维护性。下面将详细介绍如何在Java中...
在Java编程语言中,访问修饰符是控制类成员(如变量、方法和构造器)访问权限的关键要素。`protected`是Java中四种访问权限之一,它在类的封装和继承中扮演着重要的角色。本篇文章将深入探讨`protected`关键字的含义...