추상 클래스

image.png

Animal

Java

public abstract class JavaAnimal {
	protected final String species;
	protected final int legCount;
	
	public JavaAnimal(String species, int legCount) {
		this.species = species;
		this.legCount = legCount;
	}	
	
	abstract public void move();
	
	public String getSpecies() {
		return species;
	}
	
	public int getLegCount() {
		return legCount;
	}

Kotlin

abstract class Animal(
	protected val species: String,
	protected **open** val legCount: Int,
) {
	abstract fun move()
}

Cat

Java

public class JavaCat extends JavaAnimal {
	public JavaCat(String speceis) {
		super(species, 4);
	}
	
	@Override
	public void move(){
		System.out.println("cat move");
	}
}

Kotlin

class Cat(
	species: String
) : Animal(species, 4) {

	override fun move() {
		println("cat move")
	}
}

Penguin

Java