15. 상속
Mammals.java
Class Mammals {
Eyes HumanEyes;
Nose HumanNose;
Mouse HumanMouse;
Human.java
Class Human extends Mammals{
void cook(){}
void webserching(){}
void Studying(){}
기
준
Mouse HumanMouse;
Ear HumanEar;
void run(){}
void walk(){}
void milk()
}
void Studying(){}
}
SuperClass
ParentsClass
SubClass
ChildClass
thissuper
16. 상속
Mammals.java
Class Mammals {
Eyes HumanEyes;
Nose HumanNose;
Mouse HumanMouse;
Human.java
Class Human extends Mammals{
void cook(){}
void webserching(){}
void Studying(){}Mouse HumanMouse;
Ear HumanEar;
void run(){}
void walk(){}
void milk()
}
void Studying(){}
}
Human 의 기능을 사용 시
사람의 걷기 = this.walk()
포유류의 걷기 = super.walk()
17. 접근제어자(access modifier)
제어자 대상 설명
Private 메소드
멤버변수
같은 클래스 내에서만 접근가능
Default 클래스, 메소드,
멤버변수
같은 패키지 내에서만 접근가능
멤버변수
Protected 메소드, 멤버변
수
서브클래스까지 접근가능
public 클래스, 메소드,
멤버변수
모든 접근 허가
18. Get,Set 메소드 및 압축
Class Sum{
private int a;
private int b;
Public void SetA(int a){this a = a;}
Public void GetA(){return a;}
Public void SetB(int b){this b = b;}
조건을 이용하여 보안성 향상
Public void SetB(int b){this b = b;}
Public void GetB(){return b;}
Public void hap(){
System.out.println(this.a+this.b);
}}
19. Abstract Class & Interface
Human 의 기능을 사용 시
사람의 걷기 = this.walk()
포유류의 걷기 = super.walk()
추상적(Abstract)이다.
20. Abstract Class & Interface
• 추상(미 완성된) 메소드를 함께 보유
• 인스턴스화 불가능
• 상속받은 클래스는 반드시 미완성
메소드를 오버라이딩 해야함
Abstract
Class
• 미완성된 메소드와 Static Final 형의
멤버변수만 보유
• Implements 를 사용하여 관계 맺음.
• 서브클래스는 모든 인터페이스의 메
소드를 오버라이딩 해야 함.
Interface
37. 구현 (다형성)
※발견 규칙 1
메소드는 오버라이드가 가능하다.
하지만, 변수는 오버라이드가 불가능하다.
※발견 규칙 2
부모 클래스를 객체화시, 생성자를 자식 클래스로 이용 할 때,
중복되는 메소드 영역만 오버라이드 되어 생성된다.
부모클래스가 알지 못하는 자식의 메소드는 사용이 불가능하다.
38. 다형성 정리
1)메소드 중복정의 (Method Overloading)
2)메소드 재정의 (Method Overriding)
3)상위클래스로형 변환 (Upcasting)
4)상속 (Inheritance)
위 네 가지를 통해, 기존에 만들어진 코드를 수정하거나 활용을 할 때 유용하다.
위 네가지 이유가 자바의 다형성의 조건으로 생각된다.