“面向对象编程中的接口”;“类java”;及;c++-例如; 在C++中,只定义类体中的方法并在源文件中实现它们是常见的做法。

“面向对象编程中的接口”;“类java”;及;c++-例如; 在C++中,只定义类体中的方法并在源文件中实现它们是常见的做法。,java,c++,oop,Java,C++,Oop,但这并不是一个真正的界面。因为只有类可以实现这些方法 在Java中,可以定义“接口”,就像定义类一样。现在,任何类都可以实现定义的接口 现在想象一下,当用Java编程时。我有一门课“管理”,还有一门课叫“联系”。“administration”类包含一个“contact”对象数组。现在需要定义和实现一些有用的方法,如“添加”、“删除”、“交换”等。。在“接触”阵列上操作 这些方法应该由接口定义,并由“administration”类实现 我的问题是,这个接口应该被引用到“customer”类,例

但这并不是一个真正的界面。因为只有类可以实现这些方法

在Java中,可以定义“接口”,就像定义类一样。现在,任何类都可以实现定义的接口

现在想象一下,当用Java编程时。我有一门课“管理”,还有一门课叫“联系”。“administration”类包含一个“contact”对象数组。现在需要定义和实现一些有用的方法,如“添加”、“删除”、“交换”等。。在“接触”阵列上操作

这些方法应该由接口定义,并由“administration”类实现

我的问题是,这个接口应该被引用到“customer”类,例如我们称之为iccustomer,还是应该被引用到产生“IAdministration”的“administration”类

我不在乎“foo-able”或“I-foo”,只在乎接口背后的概念

它们应该由描述数据的类(“联系人”)或处理数据的类(“管理”)来定位吗

我知道这是一个更具哲理的问题,但无论如何,我想知道你对此的看法


接口可以面向任何类型的类。
隐式/非正式地,每个类都有一些接口
由类定义的方法确定

在你看来,这应该是一种管理。因为它
定义
管理
上的操作,该管理是
联系人
对象的容器(由文字中的数组支持)

“添加”、“删除”、“交换”不是联系人的操作 对象,但在
管理
对象上

ICustomer/IContact将是另一个具有
方法,如setFirstName、setLastName、setPhone等
getFirstName、getLastName、getPhone等。它只是一些POJO/bean

携带一些数据。从你的描述中我觉得是这样

接口可以面向任何类型的类。
隐式/非正式地,每个类都有一些接口
由类定义的方法确定

在你看来,这应该是一种管理。因为它
定义
管理
上的操作,该管理是
联系人
对象的容器(由文字中的数组支持)

“添加”、“删除”、“交换”不是联系人的操作 对象,但在
管理
对象上

ICustomer/IContact将是另一个具有
方法,如setFirstName、setLastName、setPhone等
getFirstName、getLastName、getPhone等。它只是一些POJO/bean
携带一些数据。从你的描述中我觉得是这样

术语“接口”的含义(以及therm“对象”的含义)取决于所引用的编程范式

Java完全采用了经典的OOP范式,基于对一个基础和一些接口的继承

相反,C++可以支持“多重继承”,这是一个更一般的概念。 在这种情况下,“接口”可以看作是一个只有纯虚方法的类

class Ia
{
public:
     virtual int method1()=0;
     virtual int method2()=0;
     virtual ~Ia() {}
};

class Ib
{
public:
     vritual int method3()=0;
     vritual int method4()=0;
     virtual ~Ib() {}
};

class Object
{
public:
    virtual ~Object() {}
};

class A:
   public Object,
   public Ia,
{
public:
     virtual int method1(); //implementation 
     virtual int method2(); //implementation 
};

class B:
   public A,
   public Ib
{
public:
     virtual int method3(); //implementation 
     virtual int method4(); //implementation 
};
从这个意义上讲,应该很容易识别您的案例

术语“接口”的含义(以及therm“对象”的含义)取决于您正在引用的编程范例

Java完全采用了经典的OOP范式,基于对一个基础和一些接口的继承

相反,C++可以支持“多重继承”,这是一个更一般的概念。 在这种情况下,“接口”可以看作是一个只有纯虚方法的类

class Ia
{
public:
     virtual int method1()=0;
     virtual int method2()=0;
     virtual ~Ia() {}
};

class Ib
{
public:
     vritual int method3()=0;
     vritual int method4()=0;
     virtual ~Ib() {}
};

class Object
{
public:
    virtual ~Object() {}
};

class A:
   public Object,
   public Ia,
{
public:
     virtual int method1(); //implementation 
     virtual int method2(); //implementation 
};

class B:
   public A,
   public Ib
{
public:
     virtual int method3(); //implementation 
     virtual int method4(); //implementation 
};

从这个意义上讲,识别您的案例应该很容易

我不能真正理解您的例子,但我相信混淆可能是由于同一术语的不同用法和含义造成的

一般来说,系统的接口是外部部件如何与之交互。这通常用于说明此类在其接口中提供该函数和该函数的代码中

另一个概念是OO接口,它实际上是一个与类型交互的协议。在不同的语言中,接口用于引用协议或抽象接口


你应该接受这个词的两种用法,因为这两种用法都很常见。在C++中,一个类可以实现一个协议(无状态纯抽象类相当于接口),从而实现该接口,它可能具有定义自己接口的那些和其他函数。但我相信混淆可能是由于同一术语的不同用法和含义造成的

一般来说,系统的接口是外部部件如何与之交互。这通常用于说明此类在其接口中提供该函数和该函数的代码中

另一个概念是OO接口,它实际上是一个与类型交互的协议。在不同的语言中,接口用于引用协议或抽象接口


你应该接受这个词的两种用法,因为这两种用法都很常见。在C++中,一个类可以实现一个协议(无状态纯抽象类相当于接口),从而实现该接口,它可能具有定义自己接口的那些和其他函数。这为我澄清了情况。非常感谢你的快速回答。这为我澄清了情况。这是真的,例如在对象Pascal中,一个类定义在一个区域内,该区域也称为“接口”。也许还有第三种可能性,“接口”一词是如何使用的。尽管如此,我还是发现OO接口是一种