public class Mammalia extends Animal
Mammalia cat = new Mammalia("happy", 10);
Animal cat = new Mammalia("happy", 10);
Mammalia cat = new Animal("happy", 10);
Object cat = new Mammalia("happy", 10);
https://danmilife.tistory.com/22 참고
public class test {
public static void main(String[] args){
Mammalia cat = new Mammalia("happy", 10);
cat.aging();
System.out.println(cat.getAge() + "살"); // 11살
cat.aging(5);
System.out.println(cat.getAge() + "살"); // 16살
}
}
public class Animal {
private int age;
private String name;
public Animal(String name, int number) {
this.name = name;
age = number;
}
// 멤버 함수(메소드)
public void aging() {
age++;
}
}
public class Mammalia extends Animal{
public Mammalia(String name, int number) {
super(name, number);
}
public void aging() {
super.aging(); // 부모 클래스의 멤버에 접근 가능. 이거 지우면 나이는 안먹고, 털은 길어짐. == 부모 클래스의 메소드를 오버라이딩 하는 것임.
// 이를 방지하고 싶으면, 부모클래스에서 static, private, final로 선언하면 자식클래스에서 오버라이딩이 불가능해진다.
}
public void aging(int time){ // 메소드 오버로드
super.setAge(super.getAge() + time);
}
}
public class Mammalia extends Animal{
private int hair;
public Mammalia(String name, int number) {
super(name, number);
}
public Mammalia(String name, int number, String hairLength) {
super(name, number);
if (hairLength == "long"){
hair = 100;
} else {
hair = 10;
}
}
}
public class test {
public static void main(String[] args){
Mammalia cat = new Mammalia("happy", 10);
Mammalia longCat = new Mammalia("sad", 20, "long");
System.out.println(longCat.getHair()); // 100