java扩展方法_java-是否可以使用扩展超类的方法参数的参…

  • Post author:
  • Post category:java


说我有一个像这样的课程:

abstract class Something {}

它具有一个带有扩展它的类的层次结构:

class FirstSomething extends Something {}

class SecondSomething extends Something {}

然后在其他地方,我有一堂课利用了这些东西:

abstract class A {

public void setSomething(Something something) {

//Process the something

}

}

我是否可以指定A的子类,以便使用更具体的“某物”类覆盖setSomething方法?

这就是我想要做的:

class B extends A {

@Override

public void setSomething(FirstSomething something) {

//Process the something

}

class C extends A {

@Override

public void setSomething(SecondSomething something) {

//Set the something

}

目前,我正在A类中执行以下操作:

public void setSomething(Something something) {

checkClass(something);

//Use the something

}

protected abstract void checkClass(Something something);

如果SuperSomething的类型不适合这些类,则B类和C类在checkClass方法中引发异常.

编辑:

我已经尝试过使用上面的确切方法签名,但是子类方法不会覆盖super的方法,我想我真的是在问:

有没有一种方法可以在超类的定义中指定一个方法,即在编译时检查setSomething方法中超类的子类允许的对象类型?



版权声明:本文为weixin_36393744原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。