Как вызвать методы абстрактного класса для другого класса в Java - PullRequest
5 голосов
/ 03 января 2012

может кто-нибудь сказать мне это.Как я могу вызвать метод абстрактного класса для моего собственного класса в Java?

заранее спасибо

Ответы [ 5 ]

8 голосов
/ 03 января 2012

Прежде всего посмотрите на ваш абстрактный класс, он должен содержать абстрактные методы и реальные методы.В следующем примере класс Foo имеет абстрактный метод (FooMethod) и реальный метод (Yeee).

public abstract class Foo {

  public abstract int FooMethod(int i);

  public int Yeeee() {
    for (int i = 0; i < 3; i++) {
       int res = FooMethod(i);
       // Do whatever
    }
  }
}

Абстрактный класс не предназначен для непосредственного использования, поэтому мы должны наследовать его с помощьюконкретный класс.Следующее наследуется от абстрактного (реализует абстрактный метод)

public class Bar extends Foo {
  public int FooMethod(int i) {
    // do something with i
  }

  public static void main (string [] args) {
      Bar obj = new Bar();
      obj.Yeeee();
  }
}

Примечание: когда в основном вы вызываете obj.Yeee (), вызывается метод базового класса, но вместо абстрактного FooMethod, вашиспользуется собственная новая реализация.

Это всего лишь верхушка айсберга с абстрактными классами, но примерно она должна указывать вам правильное направление.

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

5 голосов
/ 03 января 2012

Вам необходимо сначала создать подкласс абстрактного класса.Затем он будет содержать методы этого абстрактного класса.Вы используете ключевое слово extends.

Например:

public class MyClass extends AbstractClass 
{
   //class content here...
}
2 голосов
/ 03 января 2012

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

YourAbstractClassName.methodName (argsесли есть);

1 голос
/ 03 января 2012

, поскольку абстрактные классы не могут быть созданы в Java, вы не можете иметь функции-члены в этом классе, и если вы хотите иметь такие функции, чем их, это логическая проблема. Однако, если вы хотите вызывать статические методы, вы можете просто вызвать их, используя имя класса, т.е.

YourClassName.fuctionName(parameters if any);
0 голосов
/ 03 января 2012

Вы имеете в виду, как реализовать этот метод в вашем классе? если это то, что вы хотите понять тогда вам просто нужно расширить свой класс абстрактным

например

абстрактный класс GraphicObject {....}

класс Circle расширяет GraphicObject {...}

попробуй http://docs.oracle.com/javase/tutorial/java/IandI/abstract.html

...