`

Java继承中变量和方法在各访问权限下的情况

    博客分类:
  • Java
阅读更多

下面程序的可读性不怎么好,可以说比较差吧,就凑合着看吧,就为了理解一下。

 

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()

 

0
0
分享到:
评论

相关推荐

    Java反射访问私有变量和私有方法.doc

    代理类是 Java 语言中的一种机制,使得我们可以在运行时创建一个代理类,继承自原始类,并且可以访问原始类的非公有成员变量或方法。 优点:这种方法可以在运行时创建一个代理类,继承自原始类,非常灵活。 缺点:...

    继承和接口和java访问权限修饰符总结.doc

    访问权限修饰符是指在 Java 中用来控制类、方法和变量的访问权限的关键字。常见的访问权限修饰符有:public、private、protected 和 default。 五、static 修饰符 static 修饰符是指在 Java 中用来修饰类、方法和...

    Java访问权限控制源代码

    在提供的"Java访问权限控制源代码"中,可能包含示例类,这些类展示了如何使用不同的访问修饰符来控制类、变量和方法的可见性。`readme.md`文件可能包含了代码的介绍和使用指南。 通过学习和理解Java的访问权限控制...

    Java类变量和方法.doc

    Java 类变量和方法是编程语言Java的核心组成部分,它们定义了类的行为和属性。在这个文档中,我们将深入探讨这些概念。 首先,我们来看类的修饰符。在Java中,类可以被`public`、`abstract`或`final`修饰。`public`...

    java 访问权限验证

    在Java编程语言中,访问权限控制是至关重要的一个部分,它确保了代码的封装性和安全性。本文将深入探讨Java中的访问权限验证,包括其概念、种类以及如何在实践中应用。 **一、访问权限概述** Java提供了四种不同的...

    java 如何访问同名的方法或变量

    在Java编程语言中,处理同名的方法或变量是一项常见的挑战,尤其是在处理继承、包和类的层次结构时。为了理解如何有效地访问这些同名的成员,我们需要深入理解Java的命名规则、作用域、访问修饰符以及多态性。以下是...

    方法和变量在继承时的覆盖和隐藏问题

    然而,在继承过程中,可能会出现方法和变量的覆盖(Override)和隐藏(Hide)问题。这个问题对于理解Java类的继承机制和代码的运行行为非常重要。 首先,需要明确几个概念:覆盖与隐藏。方法覆盖发生时,子类提供一...

    Java方法继承、方法重载、方法覆盖总结

    在Java编程语言中,方法继承、方法重载、方法覆盖是三个非常重要的概念。它们之间既有关联又有区别,掌握这些概念对于深入理解面向对象编程有着至关重要的作用。 #### 一、Java方法继承 **方法继承**是指在一个类...

    java中的继承(子类调用父类构造方法还不懂).doc

    由于 Java 语言的多态性使得可以用一个子类的实例赋值给一个父类的变量,而在一些情况下需要判断变量到底是一个什么类型的对象。 在 Java 中,数组也可以是同类收集(homogenous collections)或异类收集...

    Java四种变量特性

    在Java编程语言中,变量的访问控制是通过四种访问修饰符来实现的,它们分别是`public`、`private`、`protected`以及默认的(无修饰符,也称为`default`)。这些修饰符决定了变量在类的不同部分以及不同类之间的可见...

    理解java中的类的各种权限修饰符

    在Java编程语言中,权限修饰符用于控制类、方法、变量等成员的访问级别。这有助于提高代码的安全性和封装性。本文将详细探讨Java中的五种权限修饰符:`public`、`protected`、`default`(也称为包访问权限)、`...

    JAVA 继承和多态实验报告.pdf

    在Java中,访问控制是指对类成员变量和方法的访问权限的控制。Java提供了四种访问控制权限:public、private、protected和default。其中,public权限允许任何类访问,private权限只允许当前类访问,protected权限...

    java继承部分课件

    Java继承是面向对象编程中的一个核心概念,它允许一个类(子类)继承另一个类(父类)的属性和方法,从而实现代码的重用和扩展。在这个名为"java继承部分课件"的资料中,我们可以期待学习到关于Java继承的基础知识、...

    Java中成员方法与成员变量访问权限详解

    在Java编程语言中,访问控制修饰符是用来定义类的成员(包括方法和变量)的可访问范围。了解这些修饰符的使用是Java基础知识的关键部分,它们对于理解和编写可维护、安全的代码至关重要。以下是Java中四种主要的访问...

    java中继承的使用案例

    (2)学生类Student继承Person,增加了学号信息,有两个构造方法Student()和Student(姓名,性别,年龄,学号),调用父类Person的构造方法对父类部分进行构造,在Student()中,默认学号为空字符串,在Student...

    继承和接口和java访问权限修饰符总结.pdf

    Java编程语言中的继承、接口和访问权限修饰符是面向对象编程的重要概念,它们共同构建了类与类之间复杂的关联和数据封装。以下是这些概念的详细解释: **多态性**: 多态性允许一个对象引用变量引用不同类型的子类...

    java关于继承的思维导图(Xmind)

    这个思维导图详细描绘了Java继承的关键概念和实践,对初学者理解继承机制,以及在实际项目中如何有效利用继承进行代码设计非常有帮助。通过学习和实践这些知识点,开发者可以更好地设计出符合面向对象原则的软件系统...

    java 使用类作为成员变量

    在Java编程语言中,类作为成员变量是一种常见的设计模式,它允许我们将一个对象实例嵌套在另一个类的内部,以此来实现数据封装和模块化。这种做法有助于组织代码,提高可读性和可维护性。下面将详细介绍如何在Java中...

    java中protected的权限

    在Java编程语言中,访问修饰符是控制类成员(如变量、方法和构造器)访问权限的关键要素。`protected`是Java中四种访问权限之一,它在类的封装和继承中扮演着重要的角色。本篇文章将深入探讨`protected`关键字的含义...

Global site tag (gtag.js) - Google Analytics