`

public,protected,private

 
阅读更多

publicprotectedprivateJava里用来定义成员的访问权限的,另外还有一种是“default”,也就是在成员前不加任何权限修饰符。如:
public   class   A{
    void   method(){};
}
method就属于default权限。

这四个修饰符的访问权限如下表:
-----------------------------------------------
                        类内部     package内       子类         其他
public             允许         允许                 允许         允许
protected       允许         允许                 允许         不允许
default           允许         允许                 不允许     不允许
private           允许         不允许             不允许     不允许
-----------------------------------------------

比如:用protected修饰的成员(变量或方法),在类内部可以调用,同一个package下的其他类也可以调用,子类里也可以调用,其他地方则不可以调用

 

 

 

 

 

 

////////////////////////////////////错误例子

 

package java1;

public class TestBase

  protected void printProtected()
  {
    System.out.println("printProtected!");
   
  }
}
import java1.TestBase;

class Child extends TestBase
{
  protected void printProtected()
  {
    System.out.println("child printProtected!");
  }
  public static void main(String[] args)
  {
    TestBase base= new Child();
   base.printProtected();    //编译报错
  }
}

Java代码 

TestBase base= new Child();   

base.printProtected();    //编译报错   


这个会出错,是因为你在不同包里访问TestBase声明的printProtected方法,所以不行,你可以在你子类的printProtected通过super来访问父类的方法。

 

可以这样解释吧,子类可以继承父类的protected方法,并且在子类内部是可以访问的(就是在子类里调用this.printProtected(),或者super.printProtected())。但是这个方法对于子类来说也是protected的。
protected的含义就是本类可以访问,同一包内的可以访问,子类可以访问。

 

<!--EndFragment-->

分享到:
评论

相关推荐

    public_protected_private用法详解

    本文将深入探讨Java(以及其他面向对象语言)中的`public`、`protected`和`private`这三个访问修饰符,以及它们在派生类中的应用。 1. **公共访问修饰符(public)** - `public`是最宽松的访问级别,表示任何地方...

    概述C++中的 public protected private friend关键字的用法

    一个C++类中的变量如果如下关键字作为修饰符. 1. public: 程序的任何...下面在看下c++ public private protected关键字 1、当在类的内部使用这三个关键字,表示访问权限:  public: 可以被任意访问。  protected:

    JS中的public和private对象,即static修饰符

    在JavaScript中,public、private和static这些概念并非原生关键字,但可以通过特定的编码模式来实现类似的功能。在C#等静态类型语言中,public、private和static是访问修饰符,用于控制类成员的可见性和作用域。而在...

    java中public、protected、默认、private关键字

    Java 访问修饰符(public、protected、默认、private) Java 中的访问修饰符是 Java 语言中一种基本概念,用于控制类、方法、变量、构造方法等成员的访问权限。 Java 中有四种访问修饰符:public、protected、默认...

    delphi的Public,Private,Protected,Published作用域

    ### Delphi中的Public,Private,Protected,Published作用域详解 #### 一、引言 在面向对象编程中,封装是核心概念之一,它通过限制对类内部数据的直接访问来提高代码的安全性和可维护性。Delphi作为一种强大的...

    细谈Delphi中的private,public,protected

    ### Delphi中的访问控制修饰符:private,public,protected 在面向对象编程中,封装是保护数据完整性和安全性的核心原则之一。通过控制类成员(属性和方法)的可见性,我们可以有效地管理类的内部状态,并确保外部...

    说出作用域public, private, protected,以及不写得区别

    这四个作用域的可见范围如下表所示。 说明:如果在修饰的元素上面没有写任何访问修饰符,则表示friendly。 作用域 当前类 同一package 子孙类 其他package public √ √ √ √ ...private √ × × ×

    C++ 类访问控制public、private、protected探讨.docx

    在C++中,有三种访问控制修饰符:public、private 和 protected。 1. **Public** 访问控制: 公共成员(public members)可以被类的任何对象、类的成员函数以及类的外部代码自由地访问。在上述代码示例中,`disp` ...

    用java代码来解析private、public、default、protected的权限问题

    本文将深入探讨`private`、`public`、`default`(默认)和`protected`这四种访问权限,并通过代码示例来解析它们在实际编程中的应用。 1. `private`权限: `private`是最低级别的访问权限,它限制了成员只能在同一...

    C++ 类访问控制public、private、protected探讨.pdf

    C++ 类访问控制机制是面向对象编程中的核心概念,它主要涉及到`public`、`private`和`protected`这三个访问修饰符。它们的作用是限制类的成员(数据成员和成员函数)在不同作用域内的可访问性,从而实现数据封装和...

    面向对象修饰符public private protest super final abstract理解

    这些修饰符包括`public`、`private`、`protected`以及`final`和`abstract`等。下面将详细解释这些关键字的意义及其在面向对象设计中的作用。 ### 1. `public` `public`是最开放的访问修饰符,意味着无论在哪一个类...

    C++中的三种继承public,protected,private详细解析

    C++是一种面向对象的编程语言,它提供了三种不同的继承方式:public、protected和private,每种方式对基类成员在子类中的访问权限有不同的影响。理解这些继承方式及其组合结果对于编写可维护和安全的代码至关重要。 ...

    private,public,protected,还有default四种之间的区别

    Java中,我们有四种主要的访问修饰符:`private`,`public`,`protected`,以及默认(无修饰符)。这些修饰符帮助我们实现封装,这是面向对象编程的三大特性之一。下面我们将详细探讨这四种访问修饰符的区别: 1. *...

    C++封装例程(class,struct,public,protected,private,friend)

    C++封装(class,struct,public,protected,private,friend)的博客例程。 https://blog.csdn.net/flysnow010/article/details/136907034

    Ruby中的public、private、protected区别小结

    重点关注private与protected public 默认即为public,全局都可以访问,这个不解释 private C++, “private” 意为 “private to this class”, 但是Ruby中意为 “private to this instance”. 意思是:C++中,对于类...

    php class中public,private,protected的区别以及实例分析

    值得注意的是,在类定义中,属性和方法可以使用public、private或protected关键字来限定其访问级别。如果没有明确指定属性或方法的访问级别,则其默认为public。这意味着,它们可以被类的外部代码访问和调用。 此外...

    【IT十八掌徐培成】Java基础第07天-04.权限-public-private-protected-default.zip

    权限-public-private-protected-default”深入讲解了Java中的四种主要访问权限:public、private、protected以及默认(无修饰符)。这四个修饰符对于理解和编写高质量的Java代码至关重要。 1. **public**:公共访问...

Global site tag (gtag.js) - Google Analytics