- 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
public interface Meter {
public abstract void start();
public abstract int stop(int distance);
}
class Taxi implements Meter {
@Override
public void start() {
System.out.println("차가 출발합니다.");
}
@Override
public int stop(int distance) {
int bill = distance*2;
return bill;
}
}
public class MeterExam {
public static void main(String[] args) {
Taxi taxi = new Taxi();
taxi.start();
System.out.println(taxi.stop(100));
}
}