如果子类不能从父类(superclass)继承私有(private)成员,但它从父类(superclass)继承了公共(public)方法,这些方法可以访问未继承的私有(private)成员,如此处所述http://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html被子类继承成员修改的父类(superclass)私有(private)成员存放在哪里?它们存在于何处? 最佳答案 将私有(private)成员变量视为存在于声明它们的类中。如果子类调用其父类中的方法来更改成
这个问题在这里已经有了答案:关闭12年前。PossibleDuplicate:WhythereisnomultipleinheritanceinJava,butimplementingmultipleinterfacesisallowed为什么Java允许从接口(interface)多重继承,但不允许从抽象类或具体类继承
为什么会产生以下Java代码:10superclass有问题的代码是:classSuperClass{inta;publicSuperClass(){this.a=10;}privatevoidanother_print(){System.out.println("superclass");}publicvoidprint(){System.out.println(this.a);this.another_print();}}classSubClassextendsSuperClass{inta;publicSubClass(){this.a=20;}privatevoidanothe
如果我们有:publicinterfaceFoo{}publicclassBarimplementsFoo{...}有区别吗:publicclassBarBarextendsBarimplementsFoo{..}和publicclassBarBarextendsBar{..}我看到很多这样的代码,但它总是让我感到困惑。BarBar是否需要实现Foo?我的意思是,既然它扩展了Bar开始,那不是已经存在了吗?我想我的问题是,在BarBar中实现Foo的目的是什么? 最佳答案 主要区别在于15个完全不必要的字符:-)当您的父类实现某个接
假设有以下基类:packagebg.svetlin.ui.controls;publicabstractclassControl{protectedintgetHeight(){//..}//...}另外,在同一个包中,有一个类继承了:packagebg.svetlin.ui.controls;publicabstractclassLayoutControlextendsControl{publicabstractvoidaddControl(Controlcontrol);//...}然后,在另一个包中有第三个类:packagebg.svetlin.ui.controls.scree
我目前正在以TDD方式编写JDBC驱动程序的实现(是的,您没看错),虽然此时我只完成了类stub和一些次要功能,我突然想到,由于Statement是PreparedStatement的父类(superclass),它是CallableStatement的父类(superclass),所以当我真正开始时我应该怎么做为这些类的实现编写测试,我应该做其中的哪一个:为Statement创建一个测试套件,然后扩展该套件以对PreparedStatement进行额外测试,然后对CallableStatement执行相同的操作。单独测试每个实现,忽略从父类(superclass)继承的方法。严格测试
需要对私有(private)变量和继承有更多的了解。早些时候我的理解是如果一个类中有字段并且当我继承该类时,不受访问(私有(private)变量)限制的字段将存在于继承的类中。但如果有公共(public)g/setter方法,我可以在基类中使用私有(private)变量。我如何想象基类中的私有(private)变量? 最佳答案 classA{privateinta;publicA(inta){this.a=a;}publicintgetA(){returna;}}classBextendsA{publicB(intb){super(
Java不允许从多个类继承(但它允许从多个接口(interface)继承。),我知道它非常符合经典的菱形问题。但我的问题是,当从多个基类继承时没有歧义(因此没有菱形继承(钻石问题)的机会)时,为什么java不允许像C++那样的多重继承? 最佳答案 这是一个designdecisionjava。你永远不会得到它,所以不要太担心它。尽管MI可能会帮助您创建Mixins,但这是唯一可以为您提供帮助的好MI。 关于java-java中的多重继承,我们在StackOverflow上找到一个类似的问
我创建了两个beanclassBackPageBean{StringbackPage=null;:::}classInformationMessageBean{StringinformationMessage=null;:::}现在,如果一个类是支持后台的,那么它会扩展backPageBean,或者如果它需要显示某种消息,那么它会扩展InformationMessageBean。classBackPageAwareextendsbackPageBean{}classInfoMessAwareextendsInformationMessageBean{}someFunction(){if
库类B和C都继承自类A。我有2个扩展B和C的类,即MyB和MyC。A/\BC/\MyBMyCMyB和MyC有很多共同的代码,它们只是略有不同。我想去掉重复的代码,我该如何在Java中做到这一点?在C++中,可以通过创建一个通用基类并将所有通用的内容放入其中,如下所示:A/\BC\/MyBase/\MyBMyC 最佳答案 你可以使用composition:使用公共(public)代码创建一个新类MyCommon在MyB和MyC中添加一个MyCommon实例,并将工作委托(delegate)给MyCommon。