草庐IT

Inheritance

全部标签

java - 覆盖java中的方法然后将对象转换为父类行为

我有一个父类A和一个子类B,B重写了A的方法f。publicclassA{publicStringf(){return"A";}}publicclassBextendsA{...publicStringf(){return"B";}publicstaticvoidmain(String[]args){Bb=newB();Aa=(A)b;System.out.println(b.f());//prints:B}}我创建了一个B类型的对象b,并将其转换为A类型并将其分配给A类型的变量a,然后调用a上的方法f。现在我希望调用父类的方法,因为我正在使用类型A的对象,但它没有,它调用方法的b版本

java - 使用父类(super class) "protected final"方法为子类保留公共(public)代码

作为一个(迂腐的)初学者Java程序员,我想知道,将所有子类使用的公共(public)代码块移动到单独的protected(final)父类中的方法?诸如用通用值填充列表或通用过滤算法等任务...是否也可以使用protected静态方法?classA{protectedfinalListgetVariants(){...}protectedfinalListfilterResults(Listvariants){...}}classBextendsA{publicListdoSomethingUsefull(){ListcommonVariants=getVariants();...r

带有正文的 Java "abstract like"方法

有以下类:publicabstractclassSuper{publicabstractvoidrun();}publicclassSub1extendsSuper{@Overridepublicvoidrun(){System.out.println("Methodcalled");System.out.println("Sub1called");}}publicclassSub2extendsSuper{@Overridepublicvoidrun(){System.out.println("Methodcalled");System.out.println("Sub2called

java - 私有(private)字段是否被子类继承?

我读到子类不能继承私有(private)字段或方法。然而,在这个例子中classSuperClass{privateintn=3;intgetN(){returnn;}}classSubClassextendsSuperClass{publicstaticvoidmain(String[]args){SubClasse=newSubClass();System.out.println("n="+e.getN());}}当我运行main时,我得到的输出为n=3。这似乎SubClass从SuperClass继承了私有(private)属性n。那么,请解释一下这里发生了什么。谢谢。

java - 在 java 中,我们可以将父类(super class)对象传递给子类引用吗?

在java中,我们可以将父类(superclass)对象传递给子类引用吗?我知道这是一个奇怪的问题/实际上不可行,但我想了解这背后的逻辑为什么在java中不允许。classEmployee{publicvoidmet1(){System.out.println("met1");}}classSalesPersonextendsEmployee{@Overridepublicvoidmet1(){System.out.println("newmet1");}publicvoidmet2(){System.out.println("met2");}}publicclassReference

java - int 是 Java 中的对象吗?

更准确地说,int是Integer类的一部分(精简版本之类的)还是完全是其他东西?我知道int是值类型,Integer是引用类型,但int是否继承自Object?(我假设在这方面int、long、boolean等都是相似的。选择int只是为了方便) 最佳答案 Java中的基本类型不是对象,也不继承自Object。自从Java1.5引入允许在int和Integer(以及其他类型)之间自动装箱。因为int不是不能用作通用类型参数的对象,例如T在list 关于java-int是Java中的对象

java - 如何继承两个类

我有一个People类,以及从它继承的Student和Employee类。但是,如果我有一个人既是Student又是Employee......您将如何实现? 最佳答案 这是未正确分析问题域的典型示例。是的,在某些情况下,将“学生”视为一种“人”,将“员工”视为一种“人”可能是正确的,但是-根据您的问题领域-它也可能不合适.如果您的领域要求某些东西既是“学生”又是“雇员”,您应该考虑在您的问题领域中“学生”和“人”之间的关系是否真的是“is-a”关系。可能在这种特殊情况下,作为学生只是特定人的一个属性。所以,JohnDoe是一个人,

java - 为什么不能继承构造函数为私有(private)的类?

为什么Java不允许从构造函数为私有(private)的类继承? 最佳答案 Java不会阻止使用私有(private)构造函数对类进行子类化。publicclassMain{staticclassA{privateA(){System.out.println("SubclassedAin"+getClass().getName());}}staticclassBextendsA{publicB(){}}publicstaticvoidmain(String...ignored){newB();}}打印SubclassedAinMai

java - Spring Cache 不适用于抽象类

我正在尝试在抽象类中使用SpringCache,但它不起作用,因为据我所知,Spring正在抽象类中搜索CacheNames。我有一个使用服务层和Dao层的RESTAPI。这个想法是为每个子类使用不同的缓存名称。我的抽象服务类如下所示:@Service@TransactionalpublicabstractclassAbstractService{...@CacheablepublicListfindAll(){returngetDao().findAll();}}抽象类的扩展如下所示:@Service@CacheConfig(cacheNames="textdocuments")pu

java - 继承 JPA 和 Hibernate 问题

我在加载一些对象时遇到了一个奇怪的问题。我正在使用JPA1、hibernate-core版本3.3.0.SP1和hibernate-entitymanager版本3.4.0.GA假设我有这些JPA实体:@Entity@Table(name="SLC_ELE")@Inheritance(strategy=InheritanceType.JOINED)@DiscriminatorColumn(discriminatorType=DiscriminatorType.INTEGER,name=ElementoPrograma.C_ID_CTG_ELE)publicclassElement{..