相关疑难解决方法(0)

"编程到界面"是什么意思?

我已经看过几次提到这个,我不清楚这是什么意思.你何时以及为何会这样做?

我知道接口有什么作用,但事实上我不清楚这一点让我觉得我错过了正确使用它们.

如果你这样做是这样的:

IInterface classRef = new ObjectWhatever()
Run Code Online (Sandbox Code Playgroud)

你可以使用任何实现的类IInterface吗?你什么时候需要这样做?我唯一能想到的是,如果你有一个方法,你不确定除了实现之外将传递什么对象IInterface.我想不出你需要多久做一次.

另外,你怎么能写一个接受实现接口的对象的方法?那可能吗?

language-agnostic oop interface

791
推荐指数
17
解决办法
16万
查看次数

接口是否比使用正确的方法更多

所以我想说我有这个界面:

public interface IBox
{
   public void setSize(int size);
   public int getSize();
   public int getArea();
  //...and so on
}
Run Code Online (Sandbox Code Playgroud)

我有一个实现它的类:

public class Rectangle implements IBox
{
   private int size;
   //Methods here
}
Run Code Online (Sandbox Code Playgroud)

如果我想使用IBox接口,我实际上无法创建它的实例,方式如下:

public static void main(String args[])
{
    Ibox myBox=new Ibox();
}
Run Code Online (Sandbox Code Playgroud)

对?所以我实际上必须这样做:

public static void main(String args[])
{
    Rectangle myBox=new Rectangle();
}
Run Code Online (Sandbox Code Playgroud)

如果这是真的,那么接口的唯一目的是确保实现接口的类如接口所描述的那样在其中获得了正确的方法?或者是否还有其他任何接口用途?

java oop language-features interface

159
推荐指数
9
解决办法
16万
查看次数

类中接口的用途

编写课程时界面的目的是什么?

这是我在网上看到的一个例子.

<?php
interface Chargeable {
    public function getPrice();
}

class Employee implements Chargeable {
    protected $price;

    public function getPrice() {
        return $this->price;
    }
}

$product = new Employee();

?>
Run Code Online (Sandbox Code Playgroud)

php

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

Java中的接口 - 它们用于什么?

可能重复:
接口的目的仍在继续

我刚刚开始学习Java.
我遇到过Interfaces哪些我知道如何使用,但仍然无法完全掌握它的想法.
据我所知,它interfaces通常由类实现,然后必须实现接口中声明的方法.
问题是 - 究竟是什么意思?从接口实现方法作为普通类方法不是更容易吗?使用接口的优势究竟是什么?

我试过在谷歌上寻找答案.有很多,但我仍然无法理解它的意义.我也读过这个问题及其答案,但整个合同的事情让它变得更加复杂......

希望有人可以简化它!:)
提前谢谢!

java interface

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

Java - 具有相同方法的不同对象的数组

我正在练习继承.

我有两个类似的类,我想要同化为一个数组,所以我想使用Object类作为超类,因为一切都是Object的一个子级.

所以,例如我将T类和CT类放入一个名为all的数组中:

 Object all[] = new Object[6];

    all[0] = T1;

    all[1] = CT2;

    all[2] =T3;

    all[3] = CT1;

    all[4] = T2;

    all[5] = CT3;
Run Code Online (Sandbox Code Playgroud)

我跳过了声明,因为那不是我的问题.

当我希望使用循环调用数组中的函数时,我的真正问题就变成了:

for (int i = 0; i < 6; i++) {

    all[i].beingShot(randomNum, randomNum, AK47.getAccuracy());
}
Run Code Online (Sandbox Code Playgroud)

涉及T和CT的类都分别具有isShot方法,该方法是公开的.

Eclipse建议将它们作为快速修复.我想知道除了创建我自己的持有beingShot方法的Object类,或者将其添加到Object类之外是否还有其他逻辑选择,尽管我觉得这些选择中的任何一个都会导致更长时间的问题.

谢谢!

java polymorphism inheritance casting interface

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