1. 부모클래스와 자식클래스의 다른 용어들은?
- 부모클래스: 상위클래스 또는 수퍼클래스 (Super class)
- 자식클래스: 하위클래스 또는 서브클래스 (Sub class)
2. super 키워드와 this 키워드의 차이
- super 키워드는 부모 클래스의 생성자 호출이고, this 클래스는 자신의 생성자 호출이다.
3. 단일 상속과 다중 상속이란?
- 단일 상속: 한 개의 클래스만 부모클래스로 받을 수 있는 것
- 다중 상속: 부모클래스로 여러 개의 클래스를 상속받는 것
- C++에서는 다중 상속을 허용했지만 java에서는 다중 상속은 불가능하다.
4. 다음 코드와 같이 과목과 점수가 짝을 이루도록 2개의 배열을 작성하라.
String course[] = {"Java", "C++", "HTML5", "컴퓨터구조", "안드로이드"};
int score[] = {95, 88, 76, 62, 55};
그리고 다음 예시와 같이 과목 이름을 입력받아 점수를 출력하는 프로그램을 작성하라. "그만"을 입력받으면 종료한다. (Java는 인덱스 0에 있으므로 score[0]을 출력)
-----------------------------------------------
과목 이름 >> Java
없는 과목입니다.
과목 이름 >> Java
Java의 점수는 95
과목 이름 >> 안드로이드
안드로이드의 점수는 55
과목 이름 >> 그만
*[Hint] 문자열을 비교하기 위해서는 String 클래스의 equals()메소드를 이용해야 한다.
String name;
if(course[i].equals(name)) {
int n = score[i];
...
}
5. instanceof 에 대하여 설명하시오.
- instanceof: 객체 타입을 확인하는 연산자이다.
- 형변환 가능 여부를 확인하며 true / false로 결과를 반환
- 주로 상속 관계에서 부모객체인지 자식 객체인지 확인하는 데 사용
if(ref instanceof ClassName)
6. 아래가 돌아가도록 짜시오.
public static void main(String[] args) {
Friend[] frns = new Friend[10];
int cnt = 0;
frns[cnt++] = new UnivFriend("LEE", "Computer", "010-333-555");
frns[cnt++] = new UnivFriend("SEO", "Electronics", "010-222-444");
frns[cnt++] = new CompFriend("YOON", "R&D 1", "02-123-999");
frns[cnt++] = new CompFriend("PARK", "R&D 2", "02-321-777");
for(int i = 0; i < cnt; i++) {
frns[i].showInfo();
System.out.println();
}
}
package inhertest;
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 CompFriend extends Friend {
private String department;
public CompFriend(String na, String de, String ph) {
super(na, ph);
department = de;
}
@Override
public void showInfo() {
super.showInfo();
System.out.println("부서: " + department);
}
}
class UnivFriend extends Friend {
private String major;
public UnivFriend(String na, String ma, String ph) {
super(na, ph);
major = ma;
}
@Override
public void showInfo() {
super.showInfo();
System.out.println("전공: " + major);
}
}
public class OverTest {
public static void main(String[] args) {
Friend[] frns = new Friend[10];
int cnt = 0;
frns[cnt++] = new UnivFriend("LEE", "Computer", "010-333-555");
frns[cnt++] = new UnivFriend("SEO", "Electronics", "010-222-444");
frns[cnt++] = new CompFriend("YOON", "R&D 1", "02-123-999");
frns[cnt++] = new CompFriend("PARK", "R&D 2", "02-321-777");
for (int i = 0; i < cnt; i++) {
frns[i].showInfo();
System.out.println();
}
}
}
- 출력결과