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继承的描述错误的是
子类可以继承父类的所有公有和受保护方法,如果父类有任何私有方法,则不能被继承。子类不能继承父类的所有字段:这也是错误的。子类可以继承父类的所有公有和受保护字段,除非它们是私有的并且没有提供公共访问器(getter和setter方法)。子类不能覆盖父类的所有方法:这是正确的。如果子类需要覆盖父类...

java 子类有没有继承父类的私有属性和私有方法
这个问题很经典,实际上,java的子类是继承了父类的私有成员的,但是,私有之所以为私有,就是只能在本类中使用,子类也不例外,所以最后的现象就是java子类没法使用父类的私有成员,面试可以说清楚,但是笔试的简单填空或者判断题,就当不能继承咯!

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

JAVA中,子类将继承父类的所有属性和方法么~?为什么?
是的,子类将继承父类的非私有的属性和方法。在JAVA中,子类继承父类的所有方法和属性(构造方法要用关键super([参数])调用);继承是JAVA中一个重要的特色,便于程序的编写,提高代码的重用性。1、如果给子类i提供get和set 通过get调用的自然是子类的。2、如果给父类和子类分别提供get和set,调的...

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

子类将继承父类所有的方法和属性吗?为什么?
子类继承父类的所有的非私有的方法和属性。当父类的方法或属性被声明为private(私有的)时,子类是不可以继承的。继承可以使得子类别具有父类别的各种属性和方法,而不需要再次编写相同的代码。在令子类别继承父类别的同时,可以重新定义某些属性,并重写某些方法,即覆盖父类别的原有属性和方法,使其...

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

继承和多态的关系
Java中继承和多态的关系为:继承是指子类继承父类中所有的属性和方法,但对于private的属性和方法,子类虽然可以继承,却无法访问。而多态是指父类的某个方法被子类重写时,可以各自产生自己的功能行为。Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等...

继承:子类可以继承父类的私有成员变量吗
java子类可以继承父类除了private属性(私有属性)以外所有的属性变量。子类继承父类时,需要注意以下三点:1、在子类继承父类的时候,子类必须调用父类的构造函数。2、如果父类有默认构造函数,子类实例化时自动调用,但如果父类没有默认构造函数,即无形参构造函数,子类构造函数必须通过super调用父类的...

相似回答