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);
int 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
//Printable prn = new Printer();
//prn.print("Hello Java");
}
}
▼정답
interface ICalculator { // I = interface를 뜻함.
public abstract int add(int num, int num2);
public abstract int sub(int num, int num2);
public abstract int mul(int num, int num2);
int div(int num, int num2);
}
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 int div(int num, int num2) {
return num / num2;
}
}
public class InterFace {
public static void main(String[] args) {
ICalculator calculator = new MyCalculator();
System.out.println(calculator.add(10, 20));
System.out.println(calculator.sub(10, 20));
System.out.println(calculator.mul(10, 20));
System.out.println(calculator.div(10, 20));
}
}
interface Printable {
public abstract void print(String doc) ;
}
main(){
Printable prn = new Printer();
prn.print("Hello Java");
}
▼정답
interface Printable {
void print(String doc);
}
class Printer implements Printable { // implements : interface를 구현한다.
@Override
public void print(String doc) {
System.out.println(doc);
}
}
public class InterFace {
public static void main(String[] args) {
Printable prn = new Printer();
prn.print("Hello Java");
}
}
▼정답
주석처럼 프로그램에 영향을 미치지 않으면서, 유용한 정보를 제공하는 것
애너테이션 자체가 하나의 기능(함수역할을 함)이 들어가는 경우가 많음
@Override
String str = "age: " + 17;
▼정답
[결과]age: 17
1.String s = String.valueOf(x);
2.return (obj == null) ? "null" : obj.toString();
obj에 "age: " + 17;이 대입되었기에 toString형으로 바뀜
▼정답
Object = 공통적으로 사용될 만한 함수(11개)를 부모로 올림
스레드 관련 5개 빼고, 오버라이딩 자주 사용하는 3개 - toString / hashCode / equals
부모로 올리면 다형성과 오버라이딩 활용 가능
모든 클래스는 Object를 상속한다.
class A{
}
public class Test {
public static void main(String[] args) {
A a = new A();
System.out.println(a); // a의 주소 뿌림
}
}
▼정답
Object에서 호출해온다.
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
toHexString : 16진수로 뿌리는 hasCode() 주소값
▼정답
1. interface = 상수와 + abstract(추상)함수(바디가 없는 함수)
2. interface에는 변수가 올 수 없다.
인터페이스(interface) = 자손이 구현하라. (갑(의뢰)→을(구현))
2개 이상의 클래스를 상속받을 수 있다.
예시)
class C implements A, B{}