1. Abstract(추상화)
추상화는 복잡한 문제들 중 공통적인 부분을 추출하여 추상 클래스로 제공하고, 상속을 이용하여 나머지 클래스들을 하위 클래스로 제공하는 기법이다.
추상클래스 및 추상메서드 : 기능만 정의하고, 구현은 하위클래스에서 진행한다.
추상클래스를 사용하면 상속을 강제하는 기능,
추상메서드를 사용하면 오버라이딩을 강제하는 기능을 갖는다.
즉 하위 클래스 및 메서드에서 추상클래스와 메서드의 기능을 모두 사용하게끔 강제하는 역할을 한다.
abstract class A{
public abstract int b(); //추상메서드는 본체내용이 있으면 안된다.
public void d(){ //추상 클래스 내 일반 메소드가 존재할 수 있다.
System.out.println("world");
}
}
class B extends A{ //추상클래스 A를 사용하려면 상속받는 클래스 B를 통해 사용 가능
public int b(){ //int b()메서드도 추상메서드이므로, 오버라이딩해야 사용 가능
return 1;
}
}
2. 다형성(Plymorphism)
- 서로 다른 객체가 동일한 메시지에 대하여 서로 다른 방법으로 응답할 수 있는 기능
- 상속, 객체의 형 변환, 메소드 오버라이딩을 통해 구현 가능하다.
1) 메소드와 다형성 (오버라이딩)
class O{
public void a(int param){
System.out.println("숫자 출력");
System.out.println(param);
}
public void a(String param){
System.out.println("문자 출력");
System.out.println(param);
}
}
public class PolymorphismOverloadingDemo{
public static void main(String[] args){
O o = new O();
o.a(1); //이름이 같은 a메서드라도 안에 들어오는 파라미터의 형에 따라 다른 메서드를 실행
o.a("one");
}
}
'Java' 카테고리의 다른 글
[Java] Super, this 연습 (0) | 2022.11.20 |
---|---|
[Java] 상속 연습 - 라면 끓이는 프로그램 (0) | 2022.11.20 |
[Java] 생활코딩 | 생성자, super, 메소드 오버라이딩, 메소드 오버로딩 (0) | 2022.11.13 |
[Java] 생활코딩 | 클래스 멤버, 인스턴스 멤버, 클래스 메소드, 유효범위 (0) | 2022.11.13 |
[Java] 점프 투 자바 연습문제 04장 제어문 (1) | 2022.09.24 |