Java Study : abstract class, interface

김선미·2022년 6월 16일
  • 14일에 스터디에서 놓쳤던 연습 코드들 다시 쳐보면서 연습했다.
  • 추상클래스와 인터페이스를 같이 공부하니까 둘의 특징과 차이점을 잘 알게 되는것 같다.

abstract class

abstract class Animal {
    String name;
    int age;
    String howling;

    Animal(String name, int age){
        this.name = name;
        this.age = age;
    }

    void howl(){
        System.out.println(this.howling+ "내이름은"+this.name+ "," +this.age + "살 이다");
    }

    abstract void charming();
}

class Cat extends Animal{
    Cat(String name, int age) {
        super(name, age);
        this.howling = "야옹";
    }
    @Override
    void charming() {
        System.out.println("부비부비");
    }
}

class Dog extends Animal{
    Dog(String name, int age) {
        super(name, age);
        this.howling = "멍멍";
    }

    @Override
    void charming() {
        System.out.println("배까고 드러눕기");
    }
}

public class Prac {
    public static void main(String[] args) {

        Cat cat = new Cat("나비",3);
        Dog dog = new Dog("바둑이",5);

        cat.howl();
        dog.howl();

        cat.charming();
        dog.charming();
    }
}

interface

  • Meter.java
public interface Meter {
    public abstract void start();
    public abstract int stop(int distance);
}
  • Taxi.java
class Taxi implements Meter {

    @Override
    public void start() {
        System.out.println("차가 출발합니다.");
    }

    @Override
    public int stop(int distance) {
        int bill = distance*2;
        return bill;
    }
}
  • MeterExam.java
public class MeterExam {
    public static void main(String[] args) {
        Taxi taxi = new Taxi();
        taxi.start();
        System.out.println(taxi.stop(100));
    }
}
profile
백엔드 개발 공부

0개의 댓글