JAVA中子类能不能继承父类的私有属性和方法

如题所述

最近学习继承,从书中看到子类继承父类,子类拥有父类所有的属性和方法,于是使用程序去验证,发现父类的私有属性和私有方法,子类是不能访问的,当然一些父类的私有属性可能可以通过相应的方法访问到,但是私有的方法似乎不能简单的访问,这里暂不考虑Java反射机制,于是我分析,子类不能继承父类私有的属性及方法,但是分析了内存后,我发现我是错的,在一个子类被创建的时候,首先会在内存中创建一个父类对象,然后在父类对象外部放上子类独有的属性,两者合起来形成一个子类的对象。所以所谓的继承使子类拥有父类所有的属性和方法其实可以这样理解,子类对象确实拥有父类对象中所有的属性和方法,但是父类对象中的私有属性和方法,子类是无法访问到的,只是拥有,但不能使用。就像有些东西你可能拥有,但是你并不能使用。所以子类对象是绝对大于父类对象的,所谓的子类对象只能继承父类非私有的属性及方法的说法是错误的。可以继承,只是无法访问到而已。
温馨提示:内容为网友见解,仅供参考
无其他回答

JAVA中子类能不能继承父类的私有属性和方法?
JAVA中,子类可以继承父类的私有属性和方法,但一般不能直接访问,但通过反射还是可以访问的:import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.ParameterizedType;import java.lang.reflect.Type;public class A extends B{ public void set(int x...

Java中子类能够继承父类的private属性或方法吗
程序验证,父类的私有属性和方法子类是无法直接访问的。当然私有属性可以通过public修饰的getter和setter方法访问到的,但是私有方法不行。假设:子类不能够继承父类的私有属性和方法 那么:分析内存后,会发现,当一个子类被实例化的时候,默认会先调用父类的构造方法对父类进行初始化,即在内存中创建一个...

Java中子类继承了父类的私有属性及方法吗?
可以继承,只是无法访问到而已。

子类是否可以继承所有父类的所有方法和属性
1是的,在JAVA中,子类继承父类的所有方法和属性(构造方法要用关键super([参数])调用)另外,当父类的方法或属性被声明为private(私有的)时,子类也是不可以继承的。2、继承是JAVA中一个重要的特色,便于程序的编写,提高代码的重用性。

Java中子类能够继承父类的private属性或方法吗
继承肯定是继承,但没法访问

Java 中子类是否只继承父类的非私有变量和方法
一个子类只能继承其父类的可访问的成员,并且该子类没有覆盖或者说隐藏父类中的那些可访问成员。所以,一个类的成员就是指在这个类中所声明的属性和方法,再加上从其父类继承而来的属性和方法。也就是说,子类是不能继承父类的私有成员的。虽然子类不继承父类中的私有成员,但是在父类中生命的这些...

子类如何调用父类private修饰的属性或方法?
在JAVA中,子类是无法继承父类的private修饰的属性和方法的,也就是说子类继承了父类,却没有继承其用private修饰的属性和方法,就无法调用了。这有利于在开发过程中保护父类的某种属性和方法不被覆盖 需要注意的是:使用了private修饰的属性和方法,默认使用final修饰,也就是说使用了private修饰的属性,...

子类能继承父类的所有方法和属性
父类的私有属性和方法子类是无法直接访问的。当然私有属性可以通过public修饰的get和set方法访问到的,但是私有方法不行。父类的private属性,会被继承并且初始化在子类父对象中,只不过对外不可见。详解:分析内存后,会发现,当一个子类被实例化的时候,默认会先调用父类的构造方法对父类进行初始化,即...

子类可以继承父类的什么
子类不能继承父类的所有方法和属性,只能继承父类所有的非private(私有)的属性和方法,而private成员是不能被继承的。打个比方:你能继承你爸的财产,但不能继承你爸的所有财产。因为你爸要养老,这是会把财产的一部分作为私有,不让你继承。 JAVA的继承也就这样。父类中public,protected修饰的属性...

关于Java 的继承问题,子类会继承父类的哪些东西?
在Java继承里,父类的属性还有方法在声明时,如果是public关键字即公共属性,则在子类继承时,这些属性和方法都会被子类继承。受保护的也可以继承 但是私有的类属性成员和方法则无法继承。.子类继承父类的成员变量 当子类继承了某个类之后,便可以使用父类中的成员变量,但是并不是完全继承父类的所有成员...

相似回答