프로그래밍

[자바 응용 문제] 상속 본문

자바/자바 예제 풀이

[자바 응용 문제] 상속

시케 2023. 5. 20. 22:55
728x90
반응형

상속

교재: 멘토씨리즈 JAVA

273p ~ 275p

1. 다음 중 상속과 관련된 단어를 모두 고르시오.

  1. super
  2. super()
  3. this
  4. extends

답: 1, 2, 4번

2. 다음 코드를 실행했을 때 콘솔창에 출력되는 결과는 무엇입니까?

package section10;

class Person {
	void printHello() {
		System.out.println("안녕하세요.");
	}
}

class Student extends Person {
}

public class PRACTICE_10_02 {
	public static void main(String[] args) {
		Person p = new Person();
		p.printHello();
		
		Student s = new Student();
		s.printHello();
	}
}

안녕하세요.

안녕하세요.

3. <PRACTICE_10_02.java> 코드에서 class Student가 Person의 printHello()를 다음과 같이 오버라이드 했을 때, 콘솔창에 출력되는 결과는 무엇입니까?

class Student extends Person {
	@Override
	void printHello() {
		System.out.println("안녕하세요, 저는 자바를 공부하는 학생입니다.");
	}
}

안녕하세요.

안녕하세요, 저는 자바를 공부하는 학생입니다.

4.  다음 코드는 컴파일 에러가 발생합니다. 그 이유는 무엇이며, 어떻게 해결해야 할까요?

[ClassA.java]

package section10;

public class ClassA {
	private int a;
	
	private ClassA(int a) {
		this.a = a;
	}
	
	public void methodA() {
		System.out.println("ClassA클래스의 methodA() 메서드입니다.");
		System.out.println("필드 a의 값은 " + a + "입니다.");
	}
}

[ClassB.java]

package section10;

public class ClassB {
	public static void main(String[] args) {
		ClassA ca = new ClassA(3);
		ca.methodA();
	}
}

ClassA에 변수 a와 생성자가 private로 접근제한 되었기 때문에 오류가 난다

private를 지우면 해결된다.

5. 다음 두 개의 클래스는 상속 관계에 있으나, 다른 패키지에 속해 있습니다. Child 클래스에서 Parent 클래스의 parentMethod 메서드를 호출하기 위해 코드를 작성해야 할까요?

[Parent.java]

package section10.access1;

public class Parent {
	protected void parentMethod() {
		System.out.println("parentMethod is called.");		
	}
}

[Child.java]

package session10.access2;
import section10.access1.*;

public class Child {
	void accessParentMethod() {
		super.parentMethod();
	}
}
728x90
반응형
Comments