11.02.2017

Abstract class Java

Ключевое слово - абстрактный, значит этот класс  - заготовка для будущей реализации. Из этого вытекает, что Создать экземпляр такого класса нельзя.
В абстрактном классе могут быть как абстрактные методы (которые нужно потом реализовать), так и обычные. В абстрактном классе могут быть поля. Интерфейс — это абстрактный класс, у которого все методы не реализованы, все публичные и нет полей.
Пример абстрактного класса :
   
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

Комментариев нет:

Отправить комментарий