最近学习继承,从书中看到子类继承父类,子类拥有父类所有的属性和方法,发现父类的私有属性和私有方法,子类是不能访问的,当然一些父类的私有属性可能可以通过相应get/set方法访问到,但是私有的方法似乎不能简单的访问,这里暂不考虑Java反射机制,在一个子类被创建的时候,首先会在内存中创建一个子类对象。所以所谓的继承使子类拥父类所有的属性和方法其实可以这样理解,子类对象确实拥有父类对象中所有的属性和方法,但是父类对象中的私有属性和方法,子类是无法访问到的,只是拥有,但不能使用。就像有些东西你可能拥有,但是你并不能使用。所以子类对象是绝对大于父类对象的,所谓的子类对象只能继承父类非私有的属性及方法的说法是错误的。可以继承,只是无法访问到而已。
举个例子:
1.小明继承了父亲的一张或多张银行卡:
(小明是子类,父亲是父类,继承的银行卡 是 子类继承父类中的属性和方法等)
2.但是父亲有的银行卡中有父亲独有的密码:
(有密码的银行卡 是 父类对象中的私有的属性和方法)
3.小明不能直接获取有密码银行卡中的钱:
(子类不能直接调用访问父类中所有的属性和方法)
4.如果小明需要获取有密码银行卡里的钱,需要父亲对应这张银行卡中的密码。 (子类可以使用父类中对应属性的get/set方法来调用)
JAVA继承的初步理解(逻辑概念)
最新推荐文章于 2024-03-09 14:23:12 发布