Ключевое слово - абстрактный, значит этот класс - заготовка для будущей реализации. Из этого вытекает, что Создать экземпляр такого класса нельзя.
В абстрактном классе могут быть как абстрактные методы (которые нужно потом реализовать), так и обычные. В абстрактном классе могут быть поля. Интерфейс — это абстрактный класс, у которого все методы не реализованы, все публичные и нет полей.Пример абстрактного класса :
package ru.javalessons;
public class Main {
public static void main(String[] args) {
FootballPlayer goalkeepeer = new Goalkeeper("Artem", 31);
FootballPlayer defender = new Defender("Ilya", 26);
FootballPlayer forward = new Forward("Ze", 27);
goalkeepeer.AboutMe();
goalkeepeer.play();
defender.AboutMe();
defender.play();
forward.AboutMe();
forward.play();
}
}
// абстрактный класс Футбольный Игрок
abstract class FootballPlayer {
private String name;
private int age;
FootballPlayer(String name, int age) {
this.name = name;
this.age = age;
}
void AboutMe() {
System.out.printf("Name:%s Age:%d%n", name, age);
}
/**
* абстрактный метод как надо играть
*/
abstract void play();
}
class Goalkeeper extends FootballPlayer {
Goalkeeper(String name, int age) {
super(name, age);
}
@Override
void AboutMe() {
super.AboutMe();
System.out.println("I am Goalkeeper");
}
@Override
void play() {
System.out.println("Protect the goal");
}
}
class Defender extends FootballPlayer {
Defender(String name, int age) {
super(name, age);
}
@Override
void play() {
System.out.println("Prevent the opposing team from scoring goals");
}
}
class Forward extends FootballPlayer {
Forward(String name, int age) {
super(name, age);
}
@Override
void play() {
System.out.println("Score the majority of goals");
}
}
Вывод Name:Artem Age:31
I am Goalkeeper
Protect the goal
Name:Ilya Age:26
Prevent the opposing team from scoring goals
Name:Ze Age:27
Score the majority of goals
Комментариев нет:
Отправить комментарий