草庐IT

Inheritance

全部标签

java - Java泛型有没有办法模仿OR

编辑:我改变了一些例子来获得这个想法:喜欢...无需创建通用接口(interface)并为Integer和Float创建子类来实现它如果没有,这样的事情可能更有意义并且更有用如果?是一个通配符,为什么我们不允许限制某些类型? 最佳答案 这是不可能的,我几乎看不到它有任何值(value)。您使用泛型来限制类型,例如在集合中。使用or运算符,您对类型的了解与对它们两者最具体的父类(superclass)型的了解一样多,在本例中为Object。那么为什么不直接使用Object呢?假设的:Listlist=//...list.get(0)的

java - 为什么 Java 构造函数必须是 public 或 protected 才能将类扩展到其包之​​外?

以下是我的ProtectedConstructor.java源码:packageprotectCon;publicclassProtectedConstructor{publicintnothing;ProtectedConstructor(){nothing=0;}}下面是UsingProtectedCon.java来源:packageother;importprotectcon.ProtectedConstructor;publicclassUsingProtectedConextendsProtectedConstructor{//**Line4**publicstaticvoi

java - 接口(interface)中没有设置方法

我有一个实现接口(interface)B的具体类A。Bref=newA();代码:publicinterfaceB{publicabstractString[]getWords();}publicclassAimplementsB{privateString[]words=newString[]{};publicvoidsetWords(String[]words){this.words=words;}publicString[]getWords(){returnthis.words;}}在接口(interface)B中,我只有getter方法而没有setter方法,尽管类A有它。所以

java - Scala - 覆盖特征中的类方法

我是Scala的新手(来自Ruby世界)。我对Scala中的“traits”概念很好奇(如果我理解正确的话,它应该类似于ruby​​中的模块)。这是一个用例。假设我有一个名为User的类,定义如下:classUser{defpassword():String="generatingapassword(default)"}假设我有一个SecurePasswords特征,我想使用它来“覆盖”User类中定义的密码方法。traitSecurePasswords{defpassword():String="generatingasecurepassword(non-default)"}而且,假

java - 在一些 Java 代码中,为什么类 Deck 扩展 Card 类?

我正在阅读一些我不熟悉的Java代码,但是如果一个类是Deck(对于一副纸牌),它已经有一个实例变量,这似乎很奇怪一组Cards,那么为什么Deck扩展或继承Card?我认为只有当A是B时,A类才继承B类(Cat继承Animal,因为猫是动物)。代码如下:publicclassDeck{privateArrayListcards;privateintdealtIndex=0;//marksfirstundealtcardpublicDeck(){}publicvoidsetDeckOfCards(ArrayListdeckOfCards){cards=deckOfCards;}publ

c# - 继承或标识符

这里有人对何时使用用户继承以及何时改用标识符有意见吗?继承示例:classAnimal{publicintName{get;set;}}classDog:Animal{}classCat:Animal{}标识符示例:classAnimal{publicintName{get;set;}publicAnimalType{get;set;}}在什么情况下我应该更喜欢哪种解决方案,它们的优缺点是什么?/丽娜 最佳答案 这取决于您需要在系统中完成的操作类型。例如,如果你有一些共同的Action,应该以不同的方式为你的每个对象完成,而不是你应

java - java中继承的缺点

谁能解释一下java中继承的缺点 最佳答案 你可能想阅读:EffectiveJava™,第二版作者:约书亚布洛赫第4章类和接口(interface)第16条:优先使用组合而不是继承第17条:继承的设计和文档,否则禁止第18条:优先使用接口(interface)而不是抽象类 关于java-java中继承的缺点,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/3150481/

java - 如何检查一个类是否扩展了另一个

我见过这个问题的变体,但没有一个能真正解决我的问题。假设我正在建立一支有类(Class)的军队。在我的继承结构的顶部,我有一个抽象的“Unit”类。然后是扩展单元的抽象“Flying”、“Ground”和“Building”类。然后是扩展Flying的具体“Helicopter”和“Jet”类。以及扩展地面的具体“士兵”和“坦克”类。最后是“HQ”和扩展建筑的“Supply”。下面是“Soldier”类下的一个方法:publicvoidattack(Unitenemy){if(enemy.getSuperclass().equals(Flying)){System.out.print(

Java - 是否可以用一个类扩展一个类的所有子类?

Java-是否可以用一个类扩展一个类的所有子类?举个例子来说明吧,实际代码要复杂的多。我有一个Animal类,它有自己的类层次结构。假设它有两个子类:Testarrosa和Viper。publicclassCar{publicabstractStringgetManufacturer();}publicclassTestarossaextendsCar{publicStringgetManufacturer(){return"Ferrari";}}publicclassViperextendsCar{publicStringgetManufacturer(){return"Dodge"

Java构造函数继承?

我一直以为构造函数不是继承的,但是看看这段代码:classParent{Parent(){System.out.println("S1");}}classChildextendsParent{Child(){System.out.println("S2");}}publicclassTest5{publicstaticvoidmain(String[]args){Childchild=newChild();}}//RESULT://S1//S2说明Child继承了构造函数。为什么结果上有S1?是否有可能创建2个不带参数的构造函数并且在结果上只有子构造函数而没有基本构造函数(仅S2)?