【Java三大特征之继承】教程文章相关的互联网学习教程文章

java – JPA,继承和instanceof【代码】

我使用JPA继承和JOIN策略(JPA2 / Hibernate).我有一个抽象的一般事件实体,包含共享字段(日期,时间,地点等)及其子项,比如说OutdoorEvent,ClassicalMusicEvent等,每种类型都有特定的字段.我搜索所有事件,获取列表<事件>我显示.但是,每种事件类型的处理都不同,因此我需要弄清楚每个Event对象的事件类型.现在这是问题所在.我想出了两个解决方案.首先,instanceof关键字:if (event instanceof OutdoorEvent) {... } else if (event inst...

Java Generics与接口继承相结合【代码】

我在Java中使用泛型和接口继承有问题.这是一个例子:public interface Type0 { }public interface Type1 extends Type0 {void method(); }public interface SomeInterface0<T extends Type0> {T get(); }public interface SomeInterface1<T extends Type1> extends SomeInterface0<T> { }现在,当我尝试使用没有类型参数的SomeInterface1类型的字段时,java comiler将SomeInterface1.get()方法的类型结果视为Type0.并且无法编译这样的...

Java入门教程九(封装继承多态)【代码】【图】

封装 封装就是将对象的属性和方法相结合,通过方法将对象的属性和实现细节保护起来,实现对象的属性隐藏。做法就是:修改属性的可见性来限制对属性的访问,并为每个属性创建一对取值(getter)方法和赋值(setter)方法,用于对这些属性的访问。 public class Person {private String name; //姓名private int age; //年龄private String phone; //联系电话private String address; //家庭住址public String getNa...

java – 如何在继承不是一个选项时实现重复行为【代码】

我有两个共享一些属性和行为的类.一个这样的共同行为集群是3D空间中的操纵.因此,每个实现接口Transformable:public interface Transformable {public void position (double x, double y, double z);public void position (Tuple3d tuple);public void rotateDeg (double yaw, double pitch, double roll);public void rotateRad (double yaw, double pitch, double roll);// And so on...}public class Foo extends Apple imple...

java – Spring RestController中的继承【代码】

我有一个Spring RestController,它处理API调用的第1版.package rest.v1;@RestController @RequestMapping("v1/someResource") public class Controller_V1 {@RequestMapping(value = "/{resourceName}", method = RequestMethod.GET)public Object retrieve() throws Exception {....} }我想要做的是创建另一个处理版本2请求的控制器.同时我想继承已经在版本1控制器中的实现.这是因为从v1到v2不变的实现将仅从v1继承. 所以像这样:...

Java中的继承和多态【代码】

我有两个类:Triangle和RightAngledTr. RightAngledTr继承自Triangle.代码如下: 三角类:class Triangle {public void draw() { System.out.println(“Base::draw\n“);}public void computeCentroid(Triangle t) {System.out.println Base::centroid\n“);} }RightAngledTr类:class RightAngledTr extends Triangle {public void draw() { System.out.println(“RightAngle::draw\n“);}public void computeCentroid(RightAngle...

java – 使用继承重叠Spring bean名称【代码】

我有一些示例代码发布到github,所以我不会在这里包含长代码片段,请参阅:https://github.com/ralf-lackinger/spring-inheritance/tree/master 我有一个父母和一个孩子,都是春豆.当我想通过bean的名称通过BeanFactory检索Parent时,返回Child的一个实例.这会给我带来问题,因为我希望它们具有不同的名称并仅返回特定的名称,因为子类会覆盖我从超类中使用的方法: 父名称:parent,parentName1,parentName2子名称:child,childName1,chi...

为什么java不允许继承最终类?

参见英文答案 > Good reasons to prohibit inheritance in Java? 11个我们知道,我们不能继承java中的final类,但我想知道为什么java不允许这样做?它背后的原因是什么?解决方法:final特指“不要继承我”(在这种情况下,它在不同的语境中具有其他含义). 开发人员将该类标记为final的原因主要是优化.要么它们可以保证某些变量将特定于某个类,并且JIT也可以利用它,因为它可以避免更昂贵的虚拟调用,...

Java中 继承的概述与定义实例【代码】

继承的概述 多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那一个类即可。 现实生活中继承:子承父业,用来描述事物之间的关系 代码中继承:就是用来描述2个类之间的关系,并且子类拥有父类的成员变量和成员方法 继承的定义 继承:就是子类继承父类的属性和行为,使得子类对象具有与父类相同的属性、相同的行为。子类可以直接访问父类中的非私有的属性和行为。 继承的格式...

java – 在方法重写中返回继承的类而不是超类【代码】

我有一个看起来像这样的类结构:class Parent {public Parent(int property) { /* use property */} } class Son extends Parent {public Son(int parentProperty, String sonProperty) { super(parentProperty);/* use son property */ } }我想为这两个类创建构建器,以便:class ParentBuilder {protected int parentProperty;public ParentBuilder parentProperty(int parentPropertyValue) {parentPropertyValue = parentProper...

参数化集合中的Java继承存在疑问【代码】

很明显,父类的对象可以保存对子进程的引用,但是在参数化集合的情况下这不适用吗? 例如:Car class is parent of Sedan所以public void doSomething(Car c){... }public void caller(){Sedan s = new Sedan();doSomething(s); }显然是有效的 但public void doSomething(Collection<Car> c){... }public void caller(){Collection<Sedan> s = new ArrayList<Sedan>();doSomething(s); }无法编译 有人可以指出为什么?而且,如何实现这...

跟我学(Effective Java 2)第17条:要么为继承而设计,并提供文档说明,要么就禁止继承【代码】

第17条:要么为继承而设计,并提供文档说明,要么就禁止继承 首先,该类的文档必须精确地描述覆盖每个方法所带来的影响。换句话说,该类必须有文档说明他可覆盖(overridable)的方法的自用型(self-use)。对于每个共有的或受保护的方法或构造器,他的文档必须指明该方法或者构造器调用了哪些可覆盖的方法,是以什么顺序调用的,每个调用的结果又是如何影响后续的处理过程的。更一般的,类必须在文档中说明,在哪些情况下会调用可覆...

吴裕雄--天生自然 JAVA开发学习:继承【代码】

class 父类 { }class 子类 extends 父类 { }public class Penguin { private String name; private int id; public Penguin(String myName, int myid) { name = myName; id = myid; } public void eat(){ System.out.println(name+"正在吃"); }public void sleep(){System.out.println(name+"正在睡");}public void introduction() { System.out.println("大家好!我是" + id + "号" + name + "."); } }public class Mou...

实现接口的Java类是否可以自动继承注释?【代码】

假设我有一个带有一些注释的接口,例如:@SpecialClass public interface IFoo { /* ... */ }假设我创建了一个实现接口的类:public class Foo implements IFoo { /* ... */ }类Foo是否有可能以某种方式“继承”或自动复制来自IFoo及其成员的全部或部分注释(例如,自动注释Foo为@SpecialClass等)? 这可以方便实现Web服务类(例如由JAX-WS“wsimport”工具生成的那些),只需实现带注释的接口,而无需将接口注释复制到实现类(例如javax.j...

java – Awkward OOP:不继承不同类的相同方法?【代码】

这是交易:我有两个不同类的对象,一个DataSizeAction和一个DataColorAction.这个类有一个共同的祖先EncoderAction不远的链. 这两个对象都公开了一个名为setScale(int scale)的方法,该方法为它们执行的编码设置了缩放类型.在两种情况下,该方法都做同样的事情. 但是,该方法并不存在于任何共同的祖先中(顺便说一下,这个OO是我正在使用的库,设计不在我自己的判断范围内). 我想编写一个方法,它接受DataSizeAction或DataColorAction并在该...