1. 자바의 상속에 대한 설명 중 틀린 것은 무엇입니까? 1. 자바는 다중 상속을 허용한다. // (X) 2. 부모의 메소드를 자식 클래스에서 재정의(오버라이딩)할 수 있다. // (O) 3. 부모의 private 접근 제한으르 갖는 필드와 메소드는 상속의 대상이 아니다. // (O) 4. final클래스는 상속할 수 없고, final 메소드는 오버라이딩할 수 없다. // (O) 2. 클래스 타입 변환에 대한 설명 중 틀린 것은 무엇입니까? 1. 자식 객체는 부모 타입으로 자동 타입 변환된다. // (O) 2. 부모 객체는 항상 자식 타입으로 강제 타입 변환된다. // (X) 3. 자동 타입 변환을 이용해서 필드와 매개 변수의 다형성을 구현한다. // (O) 4. 강제 타입 변환 전에 instanceof 연산자로 변환 가능한지 검사하는 것이 좋다. // (O) 3. final 키워드에 대한 설명으로 틀린 것은? 1. final 클래스는 부모 클래스로 사용할 수 있다. // (X) 2. final 필드는 값이 저장된 후에는 변경할 수 없다. // (O) 3. final 메소드는 재정의(오버라이딩)할 수 없다. // (O) 4. static final 필드는 상수를 말한다. // (O) 4. 오버라이딩(overriding)에 대한 설명으로 틀린 것은? 1. 부모 메소드의 시그너처(리턴 타입, 메소드명, 매개 변수)와 동일해야 한다. // (O) 2. 부모 메소드보다 좁은 접근 제한자를 붙일 수 없다 ex)public(부모) ->private(자식) // (O) 3. @Override 어노테이션을 사용하면 재정의가 확실한지 컴파일러가 검증한다. // (O) 4. protected 접근 제한을 갖는 메소드는 다른 패키지의 자식 클래스에서 재정의할 수 없다. // (X) 5.Parent 클래스를 상속해서 child 클래스를 다음과 같이 작성했는데, child클래스의 생성자에서 컴파일 에러가 발생했습니다. 그 이유를 설명해보시오. --------------------Parent.java--------------------------- public class parent{ public String name; public Parent(String name) { this.name = name; } } ---------------------Child.java------------------- public class Child extends Parent{ protected int studentNO; public Child(String name, int studentNo) { this.name = name; this.studentNO = studentNo; } } ----------------------수정 Child.java----------------------------------- public class Child extends Parent { private int studentNo; public Child(String name, int studentNo) { /////////////////////////////////////// super(name); ////////////////////////////////////// this.name = name; this.studentNo = studentNo; } } ------------------------------------------------------------------------- 6.Parent 클래스를 상속받아 Child 클래스를 다음과 같이 작성했습니다. ChildExample 클래스를 실행했을 때 호출되는 각 클래스의 생성자의 순서를 생각하면서 출력 결과를 작성해보세요. ----------------------------Parent.java--------------------------------------------- public class Parent { public String nation; public Parent() { this("대한민국"); System.out.println("Parent() call"); } public Parent(String nation) { this.nation = nation; System.out.println("Parent(String nation) call"); } } ----------------------------Child.java---------------------------------------------
public class Child extends Parent {
private String name;
public Child() {
this("홍길동");
System.out.println("Child() call");
}
public Child(String name) {
this.name = name;
System.out.println("Child(String name) call");
}
}
public class ChildExample { public static void main(String[] args) { Child child = new Child(); } } ---------------------------------------------------------------------------------------------------------------
Console
Parent(String nation) call
Parent() call
Child(String name) call
Child() call
---------------------------------------------------------------------------------------------------------------
7.Tire 클래스를 상속받아 snowTire 클래스를 다음과 같이 작성했습니다.SnowTire Example클래스를 실행했을 때 출력 결과는 무엇일까요? -----------------------Tire.java--------------------------------------------- public class Tire { public void run() { System.out.println("일반 타이어가 굴러갑니다."); } } public class SnowTire extends Tire { @Override public void run() { System.out.println("스노우 타이어가 굴러갑니다."); } } -----------------------SnowTireExample.java--------------------------------------------- public class SnowTireExample { public static void main(String[] args) { SnowTire snowTire = new SnowTire(); Tire tire = snowTire; snowTire.run(); tire.run(); } } ------------------------------------------------------------------------------
Console스노우 타이어가 굴러갑니다. 스노우 타이어가 굴러갑니다. ---------------------------------------------------------------------------- 8.A,B,C,D,E,F 클래스가 다음과 같이 상속 관계에 있을 때 다음 빈칸에 들어올 수 없는 코드는? D->E->B->A F->C->A B b = ( ) 메소드 선언:void method(B b) {...} 메소드 호출:method( ) 1.new B() //(O) 2.(B) new A() //(X) 3.new D() //(O) 4.new E() //(O) |
'legacy' 카테고리의 다른 글
이것이java다 5.6장 배열타입 (0) | 2023.04.16 |
---|---|
이것이java다 6장 확인문제 풀이 (0) | 2023.04.16 |
이것이java다 8장 확인문제 풀이 (0) | 2023.04.16 |
해외쇼핑몰 외주작업 (2) (1) | 2023.04.16 |
해외 쇼핑몰 외주작업 (1) (0) | 2023.04.16 |