标签: implements

Java - 将参数设置为Object,它既扩展了一个Object又实现了一个接口

我想知道是否可以将方法的参数设置为Object,它必须是一个扩展的类并实现另一个类.这是一个例子:假设我有一个名为ClassA的类和一个名为MyInterface的接口.

public class ClassA {
    /* code */
}    


public interface MyInterface {
    /* code */
}
Run Code Online (Sandbox Code Playgroud)

让我们说其他地方有一个名为ClassB的类,它们都扩展了ClassA并实现了MyInterface.

public class ClassB extends ClassA implements MyInterface {
    /* code */
}
Run Code Online (Sandbox Code Playgroud)

我也可以有一个ClassC,它还扩展了ClassA并实现了MyInterface:

public class ClassC extends ClassA implements MyInterface {
    /* code */
}
Run Code Online (Sandbox Code Playgroud)

我的问题是:

假设我有一个名为method1的方法,在method1中我希望有一个接受Object的参数.假设我希望这个Object要么是ClassA的子类,要么实际上是ClassA本身.这很容易做到:

 public void method1(ClassA parameter) {

 }
Run Code Online (Sandbox Code Playgroud)

假设我也想要一个方法2,并且在方法2中我想要一个接受任何实现MyInterface的参数的参数.同样,这很容易:

 public void method2(MyInterface parameter) {

 }
Run Code Online (Sandbox Code Playgroud)

但是如果我想要一个method3,并且我希望有一个参数只接受ClassA的子类或ClassA本身,并且实现MyInterface,那么接受ClassB和ClassC,但不接受任何只扩展ClassA的类,或者只实现MyInterface,或者两者都不实现.喜欢:

public void method3 ([Something that extends ClassA implements MyInterface] parameter) {
  /* code */
}
Run Code Online (Sandbox Code Playgroud)

java parameters function extend implements

3
推荐指数
1
解决办法
1755
查看次数

JAVA - 返回接口列表

我有这个问题,我想只在if块之后返回一个接口和实现类的列表.

public interface Lotto { }

public class LottoImplSecond implements Lotto { }
public class LottoImplFirst implements Lotto { }

public class MyClass {
   public List<Lotto> getLotto(Integer number){
       if(number==1) List<Lotto> listaLotto=new ArrayList<LottoImplFirst>();
       else if(number==2) List<Lotto> listaLotto=new ArrayList<LottoImplSecond>();
   return listaLotto;
}
Run Code Online (Sandbox Code Playgroud)

java interface list implements

3
推荐指数
1
解决办法
4668
查看次数

为什么一个类可以实现多个接口?

这是关于oop接口的唯一问题我似乎无法完全解释.那么,为什么在oop中一个类可以实现多个接口?

如果你能提供一些很棒的例子.提前致谢.

oop inheritance interface class implements

3
推荐指数
1
解决办法
8515
查看次数

在同一个类中扩展和实现

如何实现接口并将类扩展到同一个类?

这似乎不起作用(接口根本没有实现):

public class StrongChecker extends BasicChecker implements Checker {
Run Code Online (Sandbox Code Playgroud)

这也不起作用(接口根本没有实现):

public class StrongChecker extends BasicChecker {
Run Code Online (Sandbox Code Playgroud)

这给了我一个错误:

public class StrongChecker implements Checker extends BasicChecker {
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助 !

java extends implements

3
推荐指数
1
解决办法
3802
查看次数

Golang推断出接口

这里只是一个简单的语言设计相关问题.在像Swift这样的语言中,为了使struct/class符合协议/接口,需要明确地将其声明为

struct Dog: Animal {
    // implementation of Animal protocols here
}
Run Code Online (Sandbox Code Playgroud)

但是为什么在Go中,没有明确的方法来显示结构符合的接口?

这不仅仅是让事情不清楚,还是有任何其他原因呢?

language-design interface go implements

3
推荐指数
1
解决办法
364
查看次数

在状态设计模式中使用组合和实现

在这里阅读此链接,在此处输入链接描述,以了解State Desing Patern.

接口类:

public interface State {
    void doAction();
}
Run Code Online (Sandbox Code Playgroud)

onState类:

public class TVStartState implements State {

    @Override
    public void doAction() {
        System.out.println("TV is turned ON");
    }
}
Run Code Online (Sandbox Code Playgroud)

截止态:

public class TVStopState implements State {

    @Override
    public void doAction() {
        System.out.println("TV is turned OFF");
    }

}
Run Code Online (Sandbox Code Playgroud)

TvContext类:

public class TVContext implements State {

    private State tvState;

    public void setState(State state) {
        this.tvState=state;
    }

    public State getState() {
        return this.tvState;
    }

    @Override
    public void doAction() { …
Run Code Online (Sandbox Code Playgroud)

java oop design-patterns object-composition implements

3
推荐指数
1
解决办法
143
查看次数

如何检查类是否实现了接口

开始了,

我有一个标记界面:

interface IPOJO {
}
Run Code Online (Sandbox Code Playgroud)

然后我有一个实现此接口的类:

class MePOJO implements IPOJO {
}
Run Code Online (Sandbox Code Playgroud)

现在假设我有一个class objectMePOJO类的持有参考:

Class<MePOJO> classObj = MePOJO.class;
Run Code Online (Sandbox Code Playgroud)

那么如何确定MePOJO类是否IPOJO只是通过使用来实现classObj

java interface implements

2
推荐指数
2
解决办法
2796
查看次数

我们是继承还是实现抽象类?

我注意到 MSDN 对“继承”和“实现”这两个术语非常小心。

我们实现了接口,但继承了非抽象类。我想抽象类的完整方法是继承的,但抽象方法是实现的。

  • 当抽象类同时包含完整方法和抽象方法时,我们应该使用什么术语?抽象类一方面没有实例(这是接口的特性),另一方面它可能包含完整的方法(这是类的特性)。

.net oop inheritance abstract-class implements

2
推荐指数
1
解决办法
1339
查看次数

如何使用多个组件/路由在 ngOnInit 上调用服务的方法

我有几个路由只不过是一个静态页面。
在这些路由中的每一个(超过 50 个)上,当路由启动时,我必须在两个不同的服务上调用几个方法(以及更多)。
一个简单的工作解决方案是在每个页面上调用 ngOnInit 方法并调用上述方法。
问题是这意味着在 50 个不同的文件中复制和粘贴相同的代码。复制粘贴不好,不可维护。

举个例子:

我有页面“FAQ”(手动分配的 id:52)和页面“Find Us”(手动分配的 id:13)。这是2条不同的路线。
我有“编辑器”服务,用于从管理面板编辑这些页面,它需要跟踪我看到的页面。
我有“缓存”服务,它检查页面之前是否已经查询到后端,或者是否需要从服务器中提取。
这两个服务都想知道我手动分配给该路由的 ID。
此特定情况下的 ID 用于查询数据库/API,但是此详细信息不是以问题为中心的,不应使其他有类似问题的人的答案无效。

// Page FAQ
id: number
constructor() {
  this.id = 52; // 52 is the id that I assigned to the page FAQ
}
ngOnInit () {
  editorService.keepTrack(this.id);
  editorService.moreMethod().notMaintainable().whatIfIChangeSomething(this.id/0);
  cacheService.keepTrack(this.id);
}

// Page Find Us
id: number
constructor() {
  this.id = 13; // 13 is the id that I assigned to the page Find Us
} 
ngOnInit () { …
Run Code Online (Sandbox Code Playgroud)

implements angular

2
推荐指数
1
解决办法
9679
查看次数

摘要如何实现接口?

我有一个通用的接口来描述对输出流的访问,如下所示:

interface IOutput {
    function writeInteger(aValue:Int):Void;
}
Run Code Online (Sandbox Code Playgroud)

我有一个基于标准haxe.io.BytesOutput类的接口的抽象实现:

abstract COutput(BytesOutput) from BytesOutput {
    public inline function new(aData:BytesOutput) {
        this = aData;
    }
    public inline function writeInteger(aValue:Int):Void {
        this.writeInt32(aValue);
    }
}
Run Code Online (Sandbox Code Playgroud)

尽管此抽象确实实现了上面描述的接口,但没有直接引用接口,当我尝试像这样使用它时:

class Main {
    public static function out(aOutput:IOutput) {
        aOutput.writeInteger(0);
    }
    public static function main() {
        var output:COutput = new BytesOutput();
        out(output); // type error
    }
}
Run Code Online (Sandbox Code Playgroud)

编译器将引发错误:COutput should be IOutput。我只能通过使用包装BytesOutput和实现的通用类来解决此问题IOutput

我的问题是如何向Haxe编译器表明抽象实现了该接口。

haxe interface abstract implements

2
推荐指数
1
解决办法
163
查看次数