Private Members

Private Members



⚡ ALL INFORMATION CLICK HERE 👈🏻👈🏻👈🏻

































Private Members


Sign up with email
Sign up




Sign up with Google



Sign up with GitHub



Sign up with Facebook




Asked
9 years, 7 months ago


Active
1 year, 11 months ago


10.5k 14 14 gold badges 41 41 silver badges 64 64 bronze badges


165 1 1 gold badge 2 2 silver badges 5 5 bronze badges


48.9k 32 32 gold badges 121 121 silver badges 158 158 bronze badges



To clarify, all fields and methods still exist for sub classes but they are only accessible indirectly via a non private method which can access them (or reflection)

–  Peter Lawrey
Oct 9 '18 at 7:35





16.3k 2 2 gold badges 38 38 silver badges 62 62 bronze badges


16.3k 2 2 gold badges 38 38 silver badges 62 62 bronze badges



Comes down to what "inherit" means. The doc @roadRunner linked to has it both ways: near the beginning it says "A subclass inherits all the members (fields, methods, and nested classes) from its superclass." then contradicts itself saying it does not inherit private members. Personally, I think they are inherited because they are there , they're just not directly accessible . I'm curious if there's a real definition of what 'inherit' means to Java, or perhaps OO in general.

–  sharakan
Apr 27 '12 at 21:57



@sharakan: today we have only a defacto definition.

–  gkakas
May 31 '12 at 7:47



So if we would compare the two alternatives that seem to emerge as defacto definitions, one car see the following: assuming one that states that private members are not inherited is completely misleading and dangerous for a new developer who thinks that superclass private members (state and behavior elements) disappeared. As such only one of the definitions is safe to assume. So there is no issue of "other definition" which was the basis of my original message ("no matter of definition"). The other definition makes no assumptions ;-)

–  gkakas
May 31 '12 at 8:03




JPMorgan Chase Bank, N.A. Moscow, Russia

Stack Overflow

Questions
Jobs
Developer Jobs Directory
Salary Calculator
Help
Mobile
Disable Responsiveness


Products

Teams
Talent
Advertising
Enterprise



Company

About
Press
Work Here
Legal
Privacy Policy
Terms of Service
Contact Us



Stack Exchange Network

Technology
Life / Arts
Culture / Recreation
Science
Other


Join Stack Overflow to learn, share knowledge, and build your career.
I was told that for a Java subclass it can inherit all members of its superclass. So does this mean even private members? I know it can inherit protected members.
Can someone explain this to me. I am now totally confused.
No, the private member are not inherited because the scope of a private member is only limited to the class in which it is defined. Only the public and protected member are inherited.
A subclass does not inherit the
private members of its parent class.
However, if the superclass has public
or protected methods for accessing its
private fields, these can also be used
by the subclass. A nested class has
access to all the private members of
its enclosing class—both fields and
methods. Therefore, a public or
protected nested class inherited by a
subclass has indirect access to all of
the private members of the superclass.
Members of a class that are declared
private are not inherited by
subclasses of that class. Only members
of a class that are declared protected
or public are inherited by subclasses
declared in a package other than the
one in which the class is declared.
This kind of depends on your exact usage of the word inheritance. I'll explain by example.
Suppose you have two classes: Parent and Child , where Child extends Parent . Also, Parent has a private integer named value .
Now comes the question: does Child inherit the private value ? In Java, inheritance is defined in such a way that the answer would be "No". However, in general OOP lingo, there is a slight ambiguity.
You could say that it not inherited, because nowhere can Child refer explicitly to value . I.e. any code like this.value can't be used within Child , nor can obj.value be used from some calling code (obviously).
However, in another sense, you could say that value is inherited. If you consider that every instance of Child is also an instance of Parent , then that object must contain value as defined in Parent . Even if the Child class knows nothing about it, a private member named value still exists within each and every instance of Child . So in this sense, you could say that value is inherited in Child .
So without using the word "inheritance", just remember that child classes don't know about private members defined within parent classes. But also remember that those private members still exist within instances of the child class.
You will be satisfied here 100%. I tested it on my computer and what I concluded I'm going to post it here. Just go through the program written below, see the program output and READ THE CONCLUSION given at the end.
To test it yourself, copy the whole program and save it in a file named "InheritanceTest.java" then compile it and finally run it.
Yes, a subclass can indirectly access the private members of a superclass. A subclass can't directly access the private members of a superclass.
All the public, private and protected members (i.e. all the fields and methods) of a superclass are inherited by a subclass but the subclass can directly access only the public and protected members of the superclass. If an inherited member from a superclass gives access to a private member of the superclass then the subclass can use this inherited member to access the private member of the superclass.
IMO by no way is it a matter of definition. In class-based Inheritance implies propagation of behavior to descendants. As such private members DO get inherited , and I will not go into the details how this happens.
Actually I find the "not inherited" answer to be dangerous for new developers and they do not comprehend right away that the private members are there hidden under the skin of your class and they (can) have severe impact on its behavior, size of the objects etc.
It is common that "development comes before understanding" in computer science, however lets avoid building (or destroying) our conceptualization of OOP assuming the wrong "definition" adopted by some technician writing the manual of a well known class based OO platform.
Sorry for stating something in such an old post, but the issue is always valid.
Though https://docs.oracle.com/javase/specs/jls/se8/html/jls-8.html#jls-8.2 shows that Private Members are not inherited. Actually, it is inherited by subclass. When we use debuggers to trace variables, it will show the private members under the label of "inherited", so just try it. there is another post discussing this question, and most of them think not inherited, which misleads many people, including me at first.

By clicking “Post Your Answer”, you agree to our terms of service , privacy policy and cookie policy

To subscribe to this RSS feed, copy and paste this URL into your RSS reader.

site design / logo © 2021 Stack Exchange Inc; user contributions licensed under cc by-sa . rev 2021.2.2.38474


Private Members ' bills - UK Parliament
Private members in Java inheritance - Stack Overflow
PRIVATE MEMBER | meaning in the Cambridge English Dictionary
Private Members in JavaScript
Private member по Русский, перевод, Английский-Русский Словарь






Search








Search





English–Russian


Grammar


English–Polish


a member of parliament who does not have a government job

Government ministers & civil servants






aide




am




attorney general




backbencher




cabinet




Chancellor of the Exchequer




Foreign Secretary




functionary




government




Home Secretary




kitchen cabinet




marshal




Privy Councillor




procurator




public servant




regulator




secretary




Secretary of State




the Privy Council




Whitehall




See more results »


These examples are from corpora and from sources on the web. Any opinions in the examples do not represent the opinion of the Cambridge Dictionary editors or of Cambridge University Press or its licensors.

More examples
Fewer examples





private member's bill





See all meanings


Add the power of Cambridge Dictionary to your website using our free search box widgets.
Browse our dictionary apps today and ensure you are never again lost for words.

Learn
Learn
New Words
Help
In Print


Develop
Develop
Dictionary API
Double-Click Lookup
Search Widgets
License Data


About
About
Accessibility
Cambridge English
Cambridge University Press
Cookies and Privacy
Corpus
Terms of Use



This website uses cookies. For more information, please visit the Privacy and Cookies Policy .

Accept and hide this message




Getting Mature
Hotwife Talking
Lesbian Old Nl
Nudist Blonde
Porno Homemade Big Cock

Report Page