추상메소드
추상메소드는 실제로 동작하는 부분이 없고 메소드 선언부만 있는 것을 말합니다. 추상메소드는 메소드앞에 abstract 키워드를 사용하여 일반메소드와 구별합니다. 그리고 생성자와 클래스 메소드 그리고 private 로 선언한 메소드는 추상메소드가 될 수없습니다.
[code java;gutter:false]
abstract public void breathe(); // 추상메소드(메소드의 몸체는 없음)
[/code]
추상클래스 정의
추상클래스는 추상메소드를 포함할 수 있고, 추상메소드를 포함하는 클래스는 반드시 추상클래스로 선언되어야 합니다. 추상클래스는 추상메소드와 마찬가지로 해당 클래스 앞에 abstract 키워드를 사용하여 다음과 같이 선언할 수 있습니다.
[code java;gutter:false]
//
// 추상클래스 Animal
//
abstract class Animal {
abstract public void breathe(); // 추상메소드
} [/code]
// 추상클래스 Animal
//
abstract class Animal {
abstract public void breathe(); // 추상메소드
} [/code]
추상메소드의 오버라이드
추상클래스는 반드시 하위 클래스를 가지며, 추상클래스를 상속받은 하위클래스는 반드시 상위클래스의 추상메소드를 모두 재정의 하여야 합니다.
[code java;gutter:false]
//
// 추상클래스 Animal로부터 파생된 일반클래스 Fish
//
class Fish extends Animal {
//
// 추상메소드 breathe()의 오버라이드
// 이때에 항상 public을 붙여서 사용해야 한다.
//
public void breathe() {
System.out.println("Bubbling...");
}
} [/code]
// 추상클래스 Animal로부터 파생된 일반클래스 Fish
//
class Fish extends Animal {
//
// 추상메소드 breathe()의 오버라이드
// 이때에 항상 public을 붙여서 사용해야 한다.
//
public void breathe() {
System.out.println("Bubbling...");
}
} [/code]
추상클래스 예제
[code java;gutter:false]
//
// 추상클래스 Animal
//
abstract class Animal {
public void eat() { // 일반메소드
System.out.println("Eating...");
}
abstract public void breathe(); // 추상메소드
}
//
// 추상클래스 Animal로부터 파생된 일반클래스 Fish
//
class Fish extends Animal {
//
// 추상메소드 breathe()의 오버라이드
//
public void breathe() {
System.out.println("Bubbling...");
}
//
// 프로그램의 최초 진입점
//
public static void main(String args[]) {
Fish my_fish = new Fish();
my_fish.breathe();
}
} [/code]
// 추상클래스 Animal
//
abstract class Animal {
public void eat() { // 일반메소드
System.out.println("Eating...");
}
abstract public void breathe(); // 추상메소드
}
//
// 추상클래스 Animal로부터 파생된 일반클래스 Fish
//
class Fish extends Animal {
//
// 추상메소드 breathe()의 오버라이드
//
public void breathe() {
System.out.println("Bubbling...");
}
//
// 프로그램의 최초 진입점
//
public static void main(String args[]) {
Fish my_fish = new Fish();
my_fish.breathe();
}
} [/code]
이 경우에 프로그램은 클래스 Fish에 정의된 breathe()함수를 수행하게 됩니다. 따라서 "Bubbling..."이 화면에 표시됩니다.
자바에서의 추상클래스에 대한 좀 더 자세한 정보는 관련 서적을 참고하시기 바랍니다.
'phpclass > 객체정보' 카테고리의 다른 글
{추상클래스}6.세셔너 확장 (0) | 2000.12.28 |
---|---|
{추상클래스}5.세셔너 분석 (0) | 2000.12.28 |
{추상클래스}4.PHP (0) | 2000.12.28 |
{추상클래스}2.C++ (0) | 2000.12.28 |
{추상클래스}1.개요 (0) | 2000.12.28 |