Интерфейс на простом английском - PullRequest
1 голос
/ 30 сентября 2010

Пожалуйста, объясните простым английским языком, почему мы нуждаемся и почему мы используем интерфейс в объектно-ориентированной разработке.

Я в замешательстве.

[+] Я работаю над Java.Пожалуйста, предоставьте образец кода на Java, если таковой имеется.

Спасибо всем.

Ответы [ 7 ]

2 голосов
/ 30 сентября 2010

Вы проверили, часть с Java Interface у вас есть объяснение и пример Java

http://www.javabeginner.com/learn-java/java-abstract-class-and-interface

Пример 1: Ниже приведен пример интерфейса Shape

interface Shape {

    public double area();
    public double volume();
}

Ниже приведен класс Point, который реализует интерфейс Shape.

public class Point implements Shape {

    static int x, y;
    public Point() {
        x = 0;
        y = 0;
    }
    public double area() {
        return 0;
    }
    public double volume() {
        return 0;
    }
    public static void print() {
        System.out.println("point: " + x + "," + y);
    }
    public static void main(String args[]) {
        Point p = new Point();
        p.print();
    }
}
1 голос
/ 30 сентября 2010

Интерфейс (в Java) является неинстабируемым абстрактным классом (у него нет конструкторов), который предоставляет публичные методы, которые все подклассы, которые наследуют их , должны реализовать.

Кроме того, одним из преимуществ наследования является облегчение множественного наследования 1014 *.

1 голос
/ 30 сентября 2010

Интерфейс используется для описания того, что 2 общих объекта имеют, но реализуют по-разному. Пример, приведенный mybook, был с утками.

Предположим, у вас 2 утки

  • Нормальный живой

  • и деревянный

И интерфейс Ifly с методом fly ();

Оба умеют летать. Так что метод Fly идет в интерфейсе. Потому что, когда вы реализуете интерфейс, вы обязаны реализовать функции в этом интерфейсе. (это как контракт!)

так что Duck реализует IFly и в своем методе fly все, что он делает, пишет консоли: «Я могу летать».

Пока деревянная утка говорит: «Я не могу летать».

тогда когда ты это сделаешь:

(C # извините, я не знаю Java)

IFLy duck = new Duck() duck.fly(); -- This will write I Can fly. Ifly woodenduck = new WoodenDuck() woodenduck.fly()

, который говорит, что я не могу летать.

Короче говоря, интерфейс описывает, что объект должен реализовать, чтобы вы могли видеть его как контракт.

Надеюсь, это немного прояснит, у меня тоже было много проблем с этим в начале.

(Срири не может объяснить, действительно хорошо)

1 голос
/ 30 сентября 2010

Вот запись из раздела JavaRanch . Это может быть полезно. Кроме того, перейдите на JavaRanch . Для новичков в Java, в частности, нет другого лучшего заменителя.

1 голос
/ 30 сентября 2010

вы предоставляете только то, что нужно сделать interface, как это будет сделано, что будет рассмотрено при реализации.

Предположим, что есть интерфейс Driver, вы объявите метод drive ();

теперь предположим, что водитель автомобиля реализует этот метод, тогда он может написать свой код там.
Если пилот реализует метод вождения, то его код ..

Надеюсь, все ясно.

0 голосов
/ 30 сентября 2010

Честно говоря, вы должны потратить время на чтение хорошей книги по Java. Я рекомендую полный справочник по Java от Герберта Шильдта.

Начните с понимания следующих терминов и их значения в ОО-контексте:

  1. Тип
  2. Контракт опубликован по типу
  3. Осуществление
  4. Полиморфизм
0 голосов
/ 30 сентября 2010

Вы имеете в виду, зачем нам интерфейсы или почему мы не используем только абстрактные классы? Интерфейсы обеспечивают:

1) Абстракция и инверсия зависимостей. Классы высокого уровня не заботятся о конкретном классе низкого уровня, с которым они работают. Чем больше у вас абстракций, тем больше гибкости. Например, вы можете полностью переписать уровень, который работает с БД, и не трогать другие уровни вашего приложения, потому что они работают с интерфейсами, но не с конкретной реализацией.

2) В интерфейсах Java предусмотрено множественное наследование

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...