2023-02-09 목 / JAVA

권혁현·2023년 2월 9일
0

Java

목록 보기
30/44
post-thumbnail

1. 아래가 돌아 가도록 하시오

interface ICalculator{
	public abstract int add(int num,int num2);
	public abstract int sub(int num,int num2);
	public abstract int mul(int num,int num2);
	double div(int num, int num2);
}

class PrintableInterface {
    public static void main(String[] args) {
    	ICalculator calculator = new MyCalculator();
    	System.out.println(calculator.add(10, 20)); //30
    	System.out.println(calculator.sub(10, 20)); //-10
        System.out.println(calculator.mul(10, 20)); //200
		System.out.println(calculator.div(10, 20)); //0.5
    }
}

class MyCalculator implements ICalculator {
	@Override
	public int add(int num, int num2) {
		return num + num2;
	}

	@Override
	public int sub(int num, int num2) {
		return num - num2;
	}

	@Override
	public int mul(int num, int num2) {
		return num * num2;
	}

	@Override
	public double div(int num, int num2) {
		return (double) num / num2;
	}
}

2. 아래가 돌아 가도록 하시오.

 interface Printable {
    public abstract void print(String doc) ;
}
main(){
    	Printable prn = new Printer();
        prn.print("Hello Java");
}

class Printer implements Printable {
	@Override
	public void print(String doc) {
		System.out.println(doc);
	}
}

3. 애너테이션이란?

@Override
  • 자식클래스가 오버라이딩 할 함수를 부모클래스가 가지고 있는지 확인하기 위해 사용

4. Object 클래스에 대하여 설명하시오.

  • 모든 클래스는 Object 클래스를 상속한다.(Object 클래스는 모든 클래스의 조상)
    subclass는 Object 클래스를 직접 상속 하지는 않지만 간접적으로(Object 클래스를 상속하는 클래스를 상속하는 형태)결국은 Object 클래스를 상속하게 된다. = Object 클래스를 사용할 수 있다

5. 아래와 같이 출력되는 이유를 설명하시오.

class A{

}

public class Test {
	public static void main(String[] args) {
		A a = new A();
		System.out.println(a); // a의 주소 뿌림
	}
}
  • 기본적으로 모든 클래스는 Object 클래스를 상속하기 때문에 class A는 Object 클래스를 상속한다.

  • Object 클래스에는 문자열을 반환하는 toString함수가 있다. 하지만 class A에는 toStirng함수가 override되어있지 않아서 a가 가리키는 객체의 주소값(가짜)을 출력하게 된다.
    이렇게 의미 없는 값이 출력되지 않도록 Object class의 String toString()함수를 override 하면 Object의 자식 클래스인 class A의 String toString() 함수가 호출된다. (모든 클래스는 Object클래스 상속, 상속에서 override하면 자식꺼!)

  • println()함수가 객체 이름을 매개 변수로 받아서 toString()을 호출할 수 있도록 overload되어 있기 때문에 a.toString을 붙이지 않아도 위의 문제와 같이 원하는 문자열이 출력되는 결과를 얻을 수 있다.

6. interface 에 대하여 설명하시오.

  • 클래스와 동일한 형식이지만 함수의 바디가 없다.

  • 자바는 다중상속을 지원하지 않기 때문에 다중상속을 지원할 수 있는 문법을 만든것이 interface이다.

0개의 댓글