java-20: 상속
-Parent-
public class Parent {
private String name;
private boolean gender;
public Parent() {
this("무명씨" ,false);
}
public Parent(String name, boolean gender) {
this.name = name;
this.gender = gender;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public boolean isGender() {
return gender;
}
public void setGender(boolean gender) {
this.gender = gender;
}
@Override
public String toString() {
return name + "(" + (gender ? "남" : "여") +")";
}
}
-InherritanceTest-
public class InherritanceTest {
public static void main(String[] args) {
Parent parent1 = new Parent();
System.out.println(parent1);
Parent parent2 = new Parent("이몽룡", true);
System.out.println(parent2);
Child child = new Child("성춘향", false, 16, "이쁜이");
System.out.println(child);
}
}
``
-Child-
```java
public class Child extends Parent{
// Parent 클래스를 상속 받았으므로 parent 클래스의 모든 멤버변수와 메소드를 별도로 정의하지 않아도 사용 할 수있다.
// 부모 클래스의 private 권한을 가진 멤버는 상속은 받았지만 접근 할 수 없다.
private int age;
private String nickName;
// 자동완성 기능을 사용해도 현재 클래스에서 직접 입력 해 정의하지 않은 멤버는 보이지 않는다.
// 부모클래스로 부터 상속받은 멤버 변수의 접근 권한이 private일 경우 부모 클래스의 생성자를 호출해서 초기화시킨다.
// 부모클래스로 부터 상속받은 멤버 변수의 접근 권한이 private일 경우 부모 클래스 Setter메소드가 작성되어 있다면
// setter메소드를 사용해서 초기화시킬 수 있다.
// 부모클래스로 부터 상속받은 멤버 변수의 접근 권한이 protected일 경우 자식클래스에서는 자유롭게 접근할 수 있으므로
// 일반 멤버 변수를 초기화 시키듯이 this를 사용한 초기화가 가능하다.
public Child(String name, boolean gender, int age, String nickName) {
super(name, gender); //setName(name); //setGender(gender);
this.age = age; //protected일 경우 this.name = name // this.gender = gender;
this.nickName = nickName;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getNickName() {
return nickName;
}
public void setNickName(String nickName) {
this.nickName = nickName;
}
@Override
public String toString() {
return getName() + "(" + (isGender() ? "남" : "여") + ") - " + age +"," +nickName;
// return name + "(" + (gender ? "남" : "여") + ") - " + age + ", " + nickName;
}
}
댓글남기기