标签: interface

调用PHP接口方法

好的,我正在尝试开始真正学习PHP中的OOP风格.我已声明了接口和类,并具有实现接口的类.我想知道,是不是只能将接口文件加载到PHP脚本文件中并从接口调用方法而不是加载类实现文件?如果是这样,那将如何做到b/c我无法找到答案.谢谢!

php oop interface

0
推荐指数
1
解决办法
3988
查看次数

c ++构造函数使用不正确的参数类型来构造对象

我有以下层次结构:

我有以下层次结构:

GameStateBaseClass -> IGameStateInterface -> IntroState
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是当我使用GameEngine引用实例化一个IntroState时(我在GameStateBaseClass中定义)我得到以下错误:

错误1错误C2664:'IntroState :: IntroState(const IntroState&)':无法将参数1从'GameEngine'转换为'const Short :: IntroState&'

在GameStateBaseClass中,我定义了一个带有const GameState引用的构造函数,在main.cpp中我传入了一个游戏引擎的实例.为什么它试图将我的GameEngine参数转换为IntroState引用呢?

这是相应的代码:

GameStateBaseClass.hpp

class GameStateBaseClass
{
    public:
        GameStateBaseClass(const GameEngine &instance);
    private:
        GameStateBaseClass(void); // = delete; // c++1x
        GameStateBaseClass(const GameStateBaseClass &instance); // = delete; // c++1x
        GameStateBaseClass operator=(const GameStateBaseClass &instance); // = delete; // c++1x

        // private members
        const GameEngine &game_engine_instance;
}
Run Code Online (Sandbox Code Playgroud)

GameStateBaseClass.cpp

GameStateBaseClass::GameStateBaseClass(const GameEngine &instance) 
    : game_engine_instance(instance) {
}

// IGameStateInterface.hpp 
class IGameStateInterface : GameStateBaseClass
{
     public:
        virtual void Init() = 0;
        virtual void …
Run Code Online (Sandbox Code Playgroud)

c++ inheritance constructor interface reference

0
推荐指数
1
解决办法
605
查看次数

我如何使用:Interface实现一个类?

如何从扩展到接口的类实现方法?

我有这个界面:

public Interface myInterface
{
      public static int myMethod();
}
Run Code Online (Sandbox Code Playgroud)

而这堂课:

public class MyClass : myInterface
{
       // And I want here to implement the method form myInterface and i don't know how
}
Run Code Online (Sandbox Code Playgroud)

c# interface

0
推荐指数
1
解决办法
105
查看次数

以后可以轻松更改界面的实现

因此在java中,初始化接口(如集合或列表)的方法是创建实现它的类的实例,例如:

Collection<Object> moo = new ArrayList();
Run Code Online (Sandbox Code Playgroud)

如果我想在稍后的代码中指定一个实现,我想通过创建另一个类来实现这一点:

class ListList extends ArrayList{

}
Run Code Online (Sandbox Code Playgroud)

然后使用.初始化变量

Collection<Object> moo = new ListList();
Run Code Online (Sandbox Code Playgroud)

然后,如果我想稍后更改实现,那么所需要的就是更改ListList扩展的内容.

所以,这里有一个问题......是否有更好的方法(我还是觉得我对这类事情缺乏经验).

java oop interface

0
推荐指数
1
解决办法
629
查看次数

使用WPF MVVM模式实现接口

我想为WPF用户控件集实现一个接口(添加行为).我正在使用MVVM设计模式.我应该在哪里实现界面?在View模型类后面或中的usercontrol代码中?

例如:

我的界面是

interface IWizard
{
    event RoutedEventHandler MoveNext;
    event RoutedEventHandler MoveBack;
    event RoutedEventHandler Cancelled;   

    bool IsLast;
    bool IsFirst;
}
Run Code Online (Sandbox Code Playgroud)

现在在其他地方我想访问这个接口实现的用户控件.

 ((IWizard)userControl).MoveNext += ...
 ((IWizard)userControl).MoveBack += ...
 ((IWizard)userControl).IsLast = true; 
Run Code Online (Sandbox Code Playgroud)

等等..

在UserControl代码后面实现

我不能直接在视图模型中访问接口的属性/方法.我必须手动链接它们.对 ?


PS:在这个例子中,我想要IsLast一个按钮的可见性绑定(TwoWay Bind)属性.

在View模型类中实现

我无法将usercontrol作为Interface对象访问.例如:((IWizard)userControl).MoveNext += ...

使用MVVM设计模式在Usercontrol上实现接口的最佳实践是什么?

c# wpf interface mvvm

0
推荐指数
1
解决办法
8810
查看次数

如何使用IEnumerable <User>或仅使用User的方法定义接口

我有一个消息接口:

public interface IMessage
    {
    int Id { get; set; }
    string Body { get; set; }
    string Title { get; set; }
    Employee CreatedBy { get; set; }
    MessageType MessageType { get; set; }

    void Send(IEnumerable<User> recipients);
    // or: void Send(User recipient);
    }
Run Code Online (Sandbox Code Playgroud)

每个实现都必须具有发送消息的Send方法,但根据方案,Send方法不同.即如果它是私人消息,则只有一个收件人,并且还向该特定用户发送了另外的邮件通知,公共消息不会这样做.

该参数可以是用户列表或单个用户.我该如何实现呢?

我知道我可以为私人消息制作一个用户列表,但最好的情况是它是否像重载方法一样.

c# oop interface

0
推荐指数
1
解决办法
88
查看次数

为什么这会导致"字段名称不明确"错误?

这是代码:

public class MyClass implements Inreface1, Inreface2 {
    public MyClass() {
        System.out.println("name is :: " + name);
    }

    public static void main(String[] args) {
        new MyClass();
    }
}
//Interface1
public interface Inreface1 {
    public String name="Name";
}
 //Interface2
public interface Inreface2 {
    public String name="Name";
}
Run Code Online (Sandbox Code Playgroud)

这是它导致的错误:

字段名称不明确

问题是什么?什么是暧昧的?

java compiler-errors interface

0
推荐指数
1
解决办法
5989
查看次数

在Scala中将静态内部接口实现为匿名类

我想在Scala中使用NIO.2特性(类在java.nio.file中):

在Java中我会这样做:

Files.newDirectoryStream(Paths.get("/tmp"), new DirectoryStream.Filter<Path>() {
  @Override
  public boolean accept(Path entry) throws IOException {
    return false;
  }
});
Run Code Online (Sandbox Code Playgroud)

我怎么能在Scala中做同样的事情?该Fitler是内部的静态接口DirectoryStream界面.

谢谢.

编辑:如果您想建议我另一个列出文件的库/方法,请不要回复.我主要对主要问题感兴趣.

static scala nested interface java-7

0
推荐指数
1
解决办法
811
查看次数

从界面或Impliment界面继承?

我有这样的界面:

   interface  IService
    {
    ....
    }
    public  class myservice:IService
    {
    ...
    }
Run Code Online (Sandbox Code Playgroud)

myservice类Impliment IService接口; 如果我这样说

myservice类继承自IService

这是错的吗?

如果错误为什么多重继承我们有这个定义:

多重继承是一些面向对象的计算机编程语言的一个特性,其中一个类可以从多个超类继承行为和特性.

支持多重继承的语言包括:C++,Common Lisp(通过CLOS),EuLisp(通过EuLisp对象系统TELOS),Curl,Dylan,Eiffel,Logtalk,Object REXX,Scala(通过使用mixin类),OCaml,Perl ,Perl 6,Python和Tcl(通过Incremental Tcl).1

一些面向对象的语言,如C#,Java和Ruby实现单继承,尽管协议或"接口"提供了真正的多重继承的一些功能. 多重继承

如果接口提供多重继承...我可以说我从一个接口继承......

c# oop interface

0
推荐指数
1
解决办法
209
查看次数

接口:使用的利润

首先,我无处不在的语言是PHP,我正在考虑学习Java.

因此,让我将我的问题分成两个密切相关的部分.

这是第一部分.

假设我有一个域模型类.它有一些getter,setter,一些查询方法等.有一天我想有可能比较它们.所以它看起来像:

class MyEntity extends AbstractEntity
{
    public function getId()
    {
        // get id property
    }

    public function setId($id)
    {
        // set id property
    }

    // plenty of other methods that set or retrieve data

    public function compareTo(MyEntity $anotherEntity)
    {
        // some compare logic
    }
}
Run Code Online (Sandbox Code Playgroud)

如果它是Java,我应该实现一个Comparable接口.但为什么?多态性?Readbility?或者是其他东西?如果它是PHP - 我应该Comparable为自己创建界面吗?

所以这是第二部分.

我的同事告诉我,Java中的一个经验法则是为类的每个行为方面创建一个接口.例如,如果我想将此对象呈现为字符串,我应该通过类似的方式来表明这种行为implements Stringable,如果PHP的Stringable情况如下:

interface Stringable
{
    public function __toString();
}
Run Code Online (Sandbox Code Playgroud)

这真的是一个经验法则吗?这种方法有什么好处?它在PHP中值得吗?在Java?

php java interface

0
推荐指数
1
解决办法
121
查看次数

标签 统计

interface ×10

c# ×4

oop ×4

java ×3

php ×2

c++ ×1

compiler-errors ×1

constructor ×1

inheritance ×1

java-7 ×1

mvvm ×1

nested ×1

reference ×1

scala ×1

static ×1

wpf ×1