728x90
목차
Q1
자바에서는 어떤 클래스의 기능을 확장하여 새로운 클래스를 만들기 위해 상속을 한다. 이때 사용하는 예약어는 [ ]이다.
Q2
하위 클래스가 상위 클래스의 생성자를 호출하거나 상위 클래스의 멤버 변수, 메서드를 호출하기 위해 사용하는 예약어로 상위 클래스의 주소, 즉 참조 값을 나타내는 예약어는 [ ]이다.
Q3
클래스를 상속받은 상태에서 상위 클래스에 이미 정의되어 있는 메서드를 하위 클래스에서 사용하기 위해 적절하지 않은 경우에 해당 메서드를 재정의할 수 있다. 이것을 [ ]라고 한다.
Q4
다음 코드는 오류가 발생했다. 오류가 발생한 원인을 설명하라.
package practice;
public class Employee {
public String name;
public String grade;
public Employee(String name) {
this.name = name;
}
}
public class Engineer extends Employee{
private String skillset;
public String getSkillset() {
return skillset;
}
public void setSkillset(String skillset)
this.skillset = skillset;
}
Q5
다음 출력결과가 나오도록 빈칸을 채우자.
import java.util.ArrayList;
class Shape {
public void draw() {
System.out.println("Shape");
}
}
class Circle extends Shape {
public void draw() {
System.out.println("Circle");
}
}
class Triangle extends Shape {
public void draw() {
System.out.println("Triangle");
}
}
public class ShapeTest {
public static void main(String[] args) {
[빈 칸 빈 칸 빈 칸 빈 칸 빈 칸 빈 칸]
list.add(new Circle());
list.add(new Triangle());
list.add(new Shape());
for(Shape s : list) {
[빈 칸 빈 칸 빈 칸]
}
}
}
정답:
Q1 : extends
Q2 : super()
Q3 : 메서드 오버라이드
Q4 :
1. 한 자바 파일에 클래스 접근 제어자가 두 개 이상 지정될 수 없다. Employee클래스의 public이 지워져야 한다.
2. setSkillset()메서드에 { } 가 누락되어있다.
3. Engineer 클래스에 생성자가 누락됨. (Employee(String)이므로 super예약어가 명시되어야함)
Q5 :
빈칸1 : ArrayList<Shape> list = new ArrayList<Shape>();
빈칸2 : s.draw();
[Do it! 자바 프로그래밍 입문] 도서로 공부하며 정리한 글입니다.
300x250