본문 바로가기
  • think normal
새로워지기/서른의 생활코딩

ex14) java_oop

by 청춘만화 2012. 2. 21.


abstract
class A {
//class A {
//void Sub(); 
/*
sub()함수는 이class에서 하는 역할은 없고 
A class에서 상속되는 하위class에서 반드시 재정의 시켜서
사용할 것을 의무화하기위한 목적만을 갖고 있다.
*/
abstract void Sub();
//이럴때 추상적 매소드를 만들어지는데, 함수머릿부앞에 abstract
//추상적인 매소드는 구현해서는 안된다. "{}"조차 사용할 수 없다.
//추상적인 매소드 뒤에는 그냥 ";"로 끝난다.
//추상적인 매소드 뒤에는 반드시 추상적인 class가 되야하므로 ->abstract class A {로 해야한다
//이것을 추상적인 매소드라고 한다.
void Sub1(){ //일반맴버함수 : 모두다 추상적인 매소드가 올 필요는 없다.
System.out.println("A클래스");
}
}

class B extends A{
void Sub(){ //추상적인 class 재정의  -> 쓸게 없더라도 void Sub(){}정도는 정의해줘야한다.
//추상적인class로부터 상속되는 class앞에 추상적인 매소드를 재정의하지않으면 상속되는 클래스도
//자동적으로 추상적인 클래스가 되므로 클래스 예약어 앞에  abstract라는 예약어를 기재해야한다.
//참조변수는 정의가 가능하나 new연산자로 객체정의는 불가능
System.out.println("B재정의");
}
}

public class Abstract01 {
public static void main(String[] args) {
A a1;
//a1=new A(); // 추상적인 class는 참조변수 정의는 가능하나
 // new연산자로 객체정의는 불가.
B b1;
b1 =new B();
}

}

'새로워지기 > 서른의 생활코딩' 카테고리의 다른 글

ex16) java_oop  (0) 2012.02.22
ex15) java_oop  (0) 2012.02.21
ex13) java_oop  (0) 2012.02.21
ex12) java_oop  (0) 2012.02.21
ex11) java_oop  (0) 2012.02.21

댓글