【Java类的继承】教程文章相关的互联网学习教程文章

在Java中通过继承的Class实现接口【代码】

我有接口车:public interface Car {void run(); }我还有一个实现此接口的基类:public class Base implements Car {@Overridepublic void run() {//some implementation here} }另外我还有一个必须实现Car接口的类那么为什么我不能做那样的事呢?public class Der extends Base implements Car {//no implementation of interface here because Base class already implements it }为什么我的基类无法实现接口?这是什么内部原因...

java中为什么不允许类多重继承,却允许接口多重继承

首先看下面这一段代码:(底下有热心网友更正,jdk1.8之后情况确实有点变化,等改天有空继续更) interface a{ void b();}interface a1 extends a{ void b();}interface a2 extends a{ void b();}interface a12 extends a1,a2{ void b();}public class Main { public static void main(String args[]){ }}上面a1和a2都继承了接口a,都获得了b方法的定义。然后a12又多重继承了a1和a2。同样,a12获得了b方法的定义...

java – 在Spring中继承@Component【代码】

我有一个类的层次结构.我想用@Component标记它们.我试图只标记父类.我希望Spring也将孩子视为组件.但它不会发生. 我尝试使用自定义的@InheritedComponent注释,如here所述.它不起作用. 我写了一个单元测试.它失败了:“没有’bean.inherit.component.Child’类型的限定bean可用”. Spring版本是4.3.7.@Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Component @Inherited public @interface InheritedComponent {...

java – Instanciation取决于类型,泛型,继承或两者兼而有之?【代码】

我有一个方法根据类型send作为此方法的参数实例化特定类.这很好用,但我真的不喜欢这个if(c == class_name.class)处理这个的方法,我很确定有更好的方法来使用泛型和继承.我使用的方法看起来(可能是错误的……)对我来说很脏. 我遵循了关于泛型和继承的几个教程,但即使我认为我或多或少地分别理解这两个概念,我也很难理解两者的结合……我认为这两个概念一旦混合就可以解决我的问题.任何人都可以告诉我正确的跟踪,泛型,继承,两者或保持...

为什么Java不允许你从泛型类型变量继承?【代码】

public class MyClass<T> extends T {...}以上声明将无法编译并显示错误:error: unexpected type class MyClass<T> extends T {}^required: classfound: type parameter Twhere T is a type-variable:T declared in class MyClass我真的不能想到发生这种情况的原因,所以我想知道是否有人可以解释为什么Java不会让你继承泛型类型变量.解决方法:我能想到的最明显的原因甚至不是类型擦除;事实上,当你创建一个B的子类时,Java编译器...

java – 继承和类成员【代码】

已知:class A {String s = "A"; }class B extends A {String s = "B"; }public class C {public static void main(String[] args){ new C().go();}void go(){A a = new B();System.out.println(a.s);} }题: 运行此代码时JVM背后的机制是什么?为什么a.s打印回“A”.解决方法:字段引用不受多态性的影响,因此在编译时编译器引用A的字段,因为您的局部变量是A类型. 换句话说,字段行为就像方法上的Java重载行为,而不是Java重写行为.

java中为什么不允许类多重继承,却允许接口多重继承

首先看下面这一段代码:(底下有热心网友更正,jdk1.8之后情况确实有点变化,等改天有空继续更)interface a{void b(); } interface a1 extends a{void b(); } interface a2 extends a{void b(); } interface a12 extends a1,a2{void b(); } public class Main {public static void main(String args[]){} }上面a1和a2都继承了接口a,都获得了b方法的定义。然后a12又多重继承了a1和a2。同样,a12获得了b方法的定义。 但是假设上述代...

java – 处理谐音继承方法的规则是什么?【代码】

我试图理解Java如何处理当具体类从不同的类/接口继承(抽象或具体)具有相同名称的方法时出现的歧义情况. 我无法找到一般规则,这就是为什么我一劳永逸地决定用一种实用的方法来花一些时间. 我考虑了8种不同的情况 >抽象方法>非抽象方法>抽象类>接口 导致这个计划:+-------------------------+| INTERFACE |+----------+--------------|| abstract | non-abstract || method | method | +-----------+--------...

JAVA:java.lang.IllegalArgumentException:不能继承最终类类[Lcom.package.testEntityDO;【代码】

我试着在课堂下模拟.public class testEntityDO extends BasetestDO {private String entityType; private testCapabilityDO[] capabilities;private testEntityDO[] testDOs;public String getEntityType() {return entityType;}public void setEntityType(String entityType) {this.entityType = entityType;}public testCapabilityDO[] getCapabilities() {return capabilities;}public void setCapabilities(testCapabilityDO...

java – 如何使用EasyMock模拟从抽象类继承的方法?【代码】

我正在与EasyMock挣扎.我写了两个小班来说明我的问题:public abstract class A {private AtomicReference<Integer> id = new AtomicReference<Integer>(null);public final int getId() {return id.get();}public final boolean setId(int id) {return this.id.compareAndSet(null, id);} }public class B extends A { }然后我继续写一个测试方法如下:public class EasyMockTester extends EasyMockSupport {@Testpublic void te...

java – Android和OOP – 全局变量与片段中的继承的getters【代码】

在Fragment中,每次需要对活动的引用或创建全局变量“mActivity”并使用它时,都应该调用getActivity(). 基本上你已经有一个Activity对象(getActivity()),感觉就像创建一个全局(mActivity)是代码重复并创建一个不需要的额外引用.但是使用getActivity()到处都看起来很可怕并且每次做多个方法调用都会感觉不对(性能?).// Pseudo Androidpublic class MyFragent extends Fragment {private Activity mActivity; // Globalpublic void o...

Java – 继承Fluent方法返回类型以返回事件类的类型,而不是父类【代码】

当您采用流畅的方法时,您可能会遇到以下情况:public class Foo<T extends a>{public Foo<T> someMethod(){System.out.println("foo");return this;}}public class Bar<T extends b> extends Foo<T> {public Bar<T> barMethod(){System.out.println("bar");return this;}}public class a{} public class b extends a{}一个流畅的接口的优点是你可以链接方法调用,但是当Bar继承了someMethod()时,返回类型是Foo not Bar会破坏以下链:...

JAVA 三角形类Triangle(GeometricObject继承)【代码】

package triangletest;import java.util.*;public class TriangleTest{ public static void main(String args[]){ Scanner ss=new Scanner(System.in); System.out.println("please input there sides and color of triangle "); double a=ss.nextDouble(); double b=ss.nextDouble(); double c=ss.nextDouble(); String co=ss.nextLine(); System.out.println("please input a boolean date to indicate this object if be filled...

java编程三角形(Triangle类)继承【代码】

import java.util.Scanner;public class Test {public static void main(String[] args) {System.out.println("请输入三角形的三条边,颜色,是否填充(true or false)");Scanner input=new Scanner(System.in);double side1=input.nextDouble();double side2=input.nextDouble();double side3=input.nextDouble();String color=input.next();boolean filled=input.nextBoolean();Triangle tri=new Triangle(side1,side2,side3,co...

java继承上机作业【代码】【图】

实现如下类之间的继承关系,并编写Music类来测试这些类。 1 package su;2 3 class Instrument{4 public void play() {5 System.out.println("弹奏乐器");6 }7 8 public void play2() {9 // TODO 自动生成的方法存根 10 11 } 12 } 13 14 class Wind extends Instrument{ 15 public void play() { 16 System.out.println("弹奏Wind"); 17 } 18 public void play2() {...