Java/Basic
[Java_Basic]클래스의 상속3 : 상속의 목적(윤성우의 열혈 Java 프로그래밍)
bangle0621
2021. 1. 2. 16:29
상속의 활용
class Friend{
protected String name;
protected String phone;
public Friend(String na, String ph){
name = na;
phone = ph;
}
public void showInfo(){
System.out.println("이름 : " + name);
System.out.println("전화 : " + phone);
}
}
class UnivFriend extends Friend{
private String major;
public UnivFriend(String na, String ph, String ma){
super(na, ph);
major = ma;
}
public void showInfo(){
super.showInfo();
System.out.println("전공 : " + major);
}
}
class CompFriend extends Friend{
private String department;
public CompFriend(String na, String ph, String de){
super(na, ph);
department = de;
}
public void showInfo(){
super.showInfo();
System.out.println("부서 : " + department);
}
}
class MyFriends2{
public static void main(String[] args){
Friend[] frns = new Friend[10];
int cnt = 0;
frns[cnt++] = new UnivFriend("LEE","Computer","010-444-333");
frns[cnt++] = new UnivFriend("SEO","Electronics","010-333-222");
frns[cnt++] = new CompFriend("WON","R&D1","010-213-2323");
frns[cnt++] = new CompFriend("HAN","R&D2","010-2323-2313");
for(int i = 0;i<cnt;i++){
frns[i].showInfo();
System.out.println();
}
}
}

모든 클래스는 Object 클래스를 상속한다.
toString 메소드를 정의했을때 Object 클래스에 있는 메소드를 오버라이딩한것
final 선언
public final class MyLastCLS{...}
->다른 클래스를 상속 할 수 없음
class Simple{
public final void func(int n){...} -> 다은 클래스에서 오버라이딩 할 수 없음
}
@Override
어노테이션 / 오버라이딩 했다는 것을 표시, 기능을 더해주진 않지만 오버로딩을 방지
상위 클래스의 메소드를 오버라이딩 하는 것이 목적이라는 선언!
오버라이딩을 하는 형태가 아니면 컴파일러가 오류 메시지 전달