부모 생성
package inheritancepkg;
// 최상위 Object로 부터 상속받음
public class Animal extends Object{
String name;
int age;
public void eat() {
System.out.println("Eat!!");
}
public void move() {
System.out.println("Move!!");
}
public void sleep() {
System.out.println("Sleep!!");
}
}
자식 클래스
package inheritancepkg;
public class Dog extends Animal {
}
자식 클래스 사용
package inheritancepkg;
public class AnimalMain {
public static void main(String[] args) {
Dog dog = new Dog();
dog.name = "댕댕이";
dog.age = 3;
dog.eat();
dog.move();
dog.sleep();
}
}
에서 보면 알 수 있듯이 Animal extends Object로 Object에서 상속받고 Dog extends Animal에서 Animal에서 상속받고 사용부분인 AnimalMain부분에서 실행을해보면 아무거도 작성하지 않은 Dog라는 자식클래스에서 상속받은 Animal 클래스를 사용할 수 있는 것을 알 수 있다.
AnimalMain.java
package inheritancepkg;
public class AnimalMain {
static void dogNamePrint(Dog dogs[]) {
//향상된 for문 / Dog타입을 넣어줬기 때문에 Dog가 나온다
// dog에 dogs의 값을 하나 씩 넣어줌
for(Dog dog :dogs) {
String name = dog.getName();
System.out.println(name);
}
}
public static void main(String[] args) {
Dog dog1 = new Dog("방글이",2);
Dog dog2 = new Dog("똥글이",2);
Dog dog3 = new Dog("호올스",2);
Dog dogs[] = new Dog[3];
dogs = new Dog[3];
dogs[0]=dog1;
dogs[1]=dog2;
dogs[2]=dog3;
dogNamePrint(dogs);
}
}
dog.java
package inheritancepkg;
public class Dog extends Animal {
public Dog() {
// super("방글이", 3); super를 아래의 this를 사용할 수 도 있다.
this("방글이", 3);
}
public Dog(String name, int age) {
super(name, age);
}
}
Animal.java
package inheritancepkg;
// 최상위 Object로 부터 상속받음
public class Animal extends Object{
private String name;
private int age;
public Animal() {
// TODO Auto-generated constructor stub
}
public Animal(String name, int age) {
super();
this.name = name;
this.age = age;
}
public void eat() {
System.out.println("Eat!!");
}
public void move() {
System.out.println("Move!!");
}
public void sleep() {
System.out.println("Sleep!!");
}
// private가 있으면 get, set을 해야함
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
