package no;
public class Main {
public static void main(String[] args) {
//여기는 좀 뒤에 설명 할것
Knife p1 = new Bow();
p1.move();
}
}
//class Knife 정의
class Knife{
public void move(){
System.out.println("OMG");
}
}
// Class Knife를 상속받음 (extends)
class Bow extends Knife{
}
위 코드에서 볼 수 있듯이 extends를 사용하여
상위 클래스로부터 상속받을 수 있다.
상속받으면 무슨 일이 일어날 까?
위의 코드를 다시 보면 Class Knife를 Class Bow가 상속받고 있다.
그림으로 보자면
이처럼 상속을 받게 되면 상위 클래스의 모든 것을 쓸 수 있다.
(접근 제한자에 대한 것은 나중에.....)
선언 법
package no;
public class Main {
public static void main(String[] args) {
//왜 이렇게 선언이 되었는가?
Knife p1 = new Bow();
p1.move();
}
}
class Knife{
public void move(){
System.out.println("OMG");
}
}
// Class Knife를 상속받음
class Bow extends Knife{
}
쉽게 생각해 보자면
int blank = 1;
String hong = "hello";
//위 처럼 자료형을 먼저 지정 해주고 Int는 숫자 String은 문자열을 써주는 것과 같다.
클래스 오버 라이딩(Class Override)
오버라이딩 이란 상위 클래스에서 정의된 것을
하위 클래스가 재 정의하는 것이다
코드를 보자
package no;
public class Main {
public static void main(String[] args) {
Knife p1 = new Bow();
p1.move();
}
}
class Knife{
public void move(){
System.out.println("OMG");
}
}
// Class Knife를 상속받음
class Bow extends Knife{
//move() 함수를 재정의 함 (Class Override)
public void move() {
System.out.println("NONO");
}
}
예제
package no;
public class Main {
public static void main(String[] args) {
Knife p1 = new MiniKnife2();
p1.move();
}
}
class Knife{
public void move(){
System.out.println("OMG");
}
}
// Class Knife를 상속받음
class Bow extends Knife{
}
class MiniKnife extends Knife{
public void mini(){
System.out.println("so mini");
}
}
class MiniKnife2 extends MiniKnife{
}