概述
问题
这个问题是来源于我的导师给我提出的问题,在学习子类与父类的关系之后,子类可以继承父类的属性及方法。那么子类是否可以继承父类的所有方法和属性呢?子类与父类的具体继承关系是怎样的呢?本文围绕这个问题展开说明。
这个问题涉及到多种可能性,因此我们只有通过实验的方式来得到我们想要的结果。我认为这个实验需要4个类才能完成,三个类用于实现继承关系,一个类用于测试。接下来就来看一下我实验的具体结果。
方法
首先我创建了四个类,如下:
然后我给每个类(除了Test类)都给了他们自己的方法和属性:
然后我们来继承一下:
我发现类和类之间的继承和接口的实现不同,一个类可以同时实现多个接口,但是一个子类只能继承一个父类,我试了一下同时继承两个父类,但是没有成功,但是类之间可以多重继承,意思就是子类继承父类,然后“孙类”继承父类,子子孙孙无穷无尽。
完成子类和父类的继承关系测试之后,我们来看看子类到底能继承父类多少东西。这里就字需要用到三个类了,两个有继承关系的类和一个测试类。这里我就只用到了Rectangle类和Shape类,还有一个测试类。首先我们在测试类里面实例化一个Shape对象,调用一下他和他父类的所有属性和方法:
我们看到,无论是父类的private(私有的)属性和方法还是他自己本身的private(私有的)属性和方法都无法被调用,图片中红色字体和红色下划线的都为报错。
最后,在没有改变属性的private属性的情况下,我只能给这个私有属性添加一个公共的set和get方法,才成功的在测试类中调用到了他,意思就是当属性为私有的时候,我们需要通过反射的方法去调用这个属性。那么私有的方法怎么办呢?
调用私有方法也是一样,因为java是一个安全性能很高的编程语言,所以私有变量就只能在内部类里面调用,这样才符合面向对象的编程思想。因此我们可以在内部类里面用公有的方法去调用私有方法之后,在测试类中我们就可以间接的调用私有方法。
结语
我们都知道,在java语言中的类可以存在继承关系,子类和父类的关系就好比一个儿子和一个父亲,父亲的财产总是会交给儿子,儿子拿到财产之后,儿子还可以创造自己的财产,这样儿子的财产就比父亲原来的财产多了。然后儿子的儿子也就是这里所说的父亲的孙子,还可以继续继承他自己父亲的财产。但是我们发现私有类只能在内部类里面调用,上面的实验也证明了这一点,并且无论是父类的私有类还是子类自己的私有类,我们在测试类中都无法直接调用,需要间接的调用。但是这并不是代表子类不能继承父类的私有类,只是私有类无法直接调用而已。因此,我得出的结论还是子类成员数目一定大于等于父类成员数目,只是私有成员变量我们要通过一些特殊方式才能调用。
最后
以上就是虚心墨镜为你收集整理的子类成员数目一定大于等于父类成员数目问题方法结语的全部内容,希望文章能够帮你解决子类成员数目一定大于等于父类成员数目问题方法结语所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复