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