반응형
EXTENDS (상속)
상속할 Parent class
public class Parent {
String name;
int age;
private int money;
Parent(){
System.out.println("Parent 생성자가 호출됨");
}
void print() {
System.out.println("name : " + name);
System.out.println("age : " + age);
}
// money의 getter / setter를 만들기
public int getMoney() {
return money;
}
public void setMoney(int money) {
this.money = money;
}
}
상속 받을 Child class
public class Child extends Parent {
// 상속받을 Child 클래스의 Child 옆에 extends 상속해줄 클래스명을 적어준다.
// Child 클래스는 Parent 클래스가 가지고있는
// 속성들을 상속 받을 것이다.
// name
// age
// money -- 들어있지만 private 설정을 했기 때문에 getter와 setter를 이용해 호출 할 수 있다.
String hobby;
Child(){
System.out.println("Child 생성자 호출됨");
}
//void printInfo() {
// 눈에 보이진 않지만 Parent에 속한 함수들도 같이 상속되어 있다.
// setMoney();
// getMoney();
// print();
// method overriding 메소드 오버라이딩
// Method Overriding :
// 상속하는 클래스에서 즉, 자식 클래스에서
// 부모 클래스에 들어있는 함수 이름을 그대로 사용하되
// 내가 원하는대로 내용만 바꿔서 사용하는것.
void print() {
// child 클래스의 print함수와 parent 클래스의 print 함수는 이름이 같아서
// 사람이 보기에도 헷갈리듯이 컴퓨터도 헷갈려한다.
// 그렇기 때문에 상속해주는 parent 클래스의 print를 method overriding에 포함시키기위해
// super 라는 키워드를 사용해 데이터를 access할 수 있다.
super.print();
System.out.println("hobby :" + hobby);
}
// Method Overroading ;
// 하나의 클래스 안에서 똑같은 이름의 함수를 여러개 만드는 것.
}
실행할 main
public class ParentMain {
public static void main(String[] args) {
// TODO Auto-generated method stub
Parent p = new Parent();
p.name = "부모";
p.age = 50;
p.setMoney(1000000000);
p.print();
System.out.println("money :"+p.getMoney()+"원");
// 상속받은 Child 클래스를 메모리에 생성(객체 생성)
Child c = new Child();
c.name = "자식";
c.age = 20;
c.hobby = "game";
c.setMoney(1000000);
System.out.println(c.getMoney());
c.print();
// private 설정을 해놓으면 상속이 되지 않는다.
// Parent클래스에 있는 Money는 private 설정이 되어 있기 때문에
// getter와 setter를 이용해 호출 할 수 있다.
// 상속해주는 Parent 클래스의 함수를 이용해서 상속받는 Child에 있는 데이터도 나타내기위해
// Method Overriding을 이용해 원하는 내용을 나타내준다.
// name :
// age :
// hobby :
}
}반응형
'Language > JAVA' 카테고리의 다른 글
| JAVA - Up Casting (0) | 2022.07.05 |
|---|---|
| JAVA - 부모(상위)생성자 호출을 위한 super 사용법 (0) | 2022.07.05 |
| JAVA - Getter / Setter (0) | 2022.07.04 |
| JAVA - 접근제어자 (0) | 2022.07.04 |
| JAVA - 클래스의 멤버변수에 데이터를 셋팅하는 방법 3가지 (0) | 2022.07.04 |