JAVA Basic)상속과 다형성 - 문제 풀이
Programming/Java 기초

JAVA Basic)상속과 다형성 - 문제 풀이

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) {
			[빈 칸 빈 칸 빈 칸]
		}
	}
}

Q5. 출력 결과

 

 

 

 

정답:

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