class Cal {
public int sum(int v1, int v2) {
return v1 + v2; //부모 클래스 더하기 구현
}
}
class Cal3 extends Cal{
//Cal에서 상속된 자식 Cal3; extends 사용
}
...
public class InheritanceApp {
public static void main(String[] args) {
Cal c = new Cal();
System.out.println(c.sum(2, 1));
Cal3 c3 = new Cal3();
System.out.println(c3.sum(2, 1));
//Cal3은 아무 기능 없지만 Cal에게 기능을 상속 받아 더하기 메소드를 사용한다.
}
}
class Cal {
public int sum(int v1, int v2) {
return v1 + v2;
}
}
class Cal3 extends Cal{
public int minus(int v1, int v2) {
return v1 - v2; //이런 식의 상속 구조에서
}
}
class Cal3 extends Cal{
public int sum(int v1, int v2) {
System.out.println("Cal3!!!");
return v1 + v2;
}
//부모 클래스 기능에 더해 Cal3!!!을 출력하는 기능까지 더하는 것
public int minus(int v1, int v2) {
return v1 - v2;
}
}
class Cal {
public int sum(int v1, int v2) {
return v1 + v2;
}
// Overloading
public int sum(int v1, int v2, int v3) {
return v1 + v2 + v3;
}
}
public class InheritanceApp {
public static void main(String[] args) {
Cal c = new Cal();
System.out.println(c.sum(2, 1)); //3
System.out.println(c.sum(2, 1, 1)); //4
}
}
class Cal {
public int sum(int v1, int v2) {
return v1 + v2;
}
// Overloading
public int sum(int v1, int v2, int v3) {
return this.sum(v1, v2) + v3;
} //생성자 값을 받을 때 인스턴스의 값을 this로 가져온다.
}
class Cal3 extends Cal{
// Overriding
public int sum(int v1, int v2) {
System.out.println("Cal3!!!");
return super.sum(v1, v2);
} //자식 클래스에서 부모 클래스의 메소드와 변수에 접근 가능
public int minus(int v1, int v2) {
return v1 - v2;
}
}
class Cal{
int v1,v2;
Cal(int v1, int v2){
System.out.println("Cal init!!");
this.v1 = v1; this.v2 = v2;
}
public int sum(){return this.v1+v2;}
}
class Cal3 extends Cal{
Cal3(int v1, int v2) {
super(v1, v2);
System.out.println("Cal3 init!!");
}
public int minus(){return this.v1-v2;}
}
interface Calculable { //인터페이스 구현
double PI = 3.14; //변수에는 값이 들어간다.
int sum(int v1, int v2); 클래스에 대한 제한,약속
} //v1,v2 라는 정수를 받고 sum이라는 메소드로 정수 출력
interface Printable {
void print(); //print라는 메소드
}
class RealCal implements Calculable, Printable {
//인터페이스가 적용된 클래스
public int sum(int v1, int v2) {
return v1 + v2;
}
public void print() {
System.out.println("this is RealCal!!!");
}
}
public class InterfaceApp {
public static void main(String[] args) {
//Calculable c = new RealCal();
//위와 같이 정의되면 계산 메소드, PI 만 사용가능
//Printable c = new RealCal();
//위와 같이 정의되면 출력 메소드만 사용가능
System.out.println(c.sum(2, 1));
c.print(); // Compile Error
System.out.println(c.PI);
}
}
Reference: