2011. 5. 24. 20:20

자바(Java)의 상속 예제 코드

상속에 대한 예제 코드를 만들기 위해 먼저 은행의 계좌번호와 잔액을 처리하는 Account 클래스를 작성한다.

  1: public class Account {
  2:  String accountNo ;         //계좌번호
  3:  int remainAmount ;        //잔액
  4: 
  5:  public Account() {
  6:   System.out.println("Account 생성자 호출되었음") ;
  7:  }
  8: 
  9:  //입금 메소드
 10:  public void deposit(int inputAmount) {
 11:   remainAmount += inputAmount ;
 12:  }
 13: }
다음은 체크카드 클래스를 추가로 만드는데 위에서 만든 Account 클래스를 extends 명령으로 상속을 받는다. 그러면 코드는 안 보여도 Account 클래스의 내용을 그대로 가져온다.
  1: public class CheckCardAccount extends Account {
  2:  public String directCardNo ;   //직불카드 번호
  3:  public int remainCardAmount ;  //잔액
  4:  
  5:  //디폴트 생성자
  6:  public CheckCardAccount() {
  7:   System.out.println("CheckCardAccount 생성자 호출되었음") ;
  8:  } 
  9: }
이제 AccountTest.java 파일을 만들어서 Account 클래스와 이것을 상속받은 CheckCardAccount 클래스를 테스트 해보자. 결과 화면을 보면 알 수 있듯이 상속받은 클래스의 인스턴스 선언에서 생성자를 호출하면 상속을 해주는 클래스의 내용도 같이 실행된다.
  1: public class AccountTest {
  2:  public static void main(String[] args)  {
  3:   System.out.println("Account 클래스 관련 내용") ;
  4:   System.out.println("========================") ;
  5:   Account yourbank = new Account() ;
  6:   yourbank.accountNo = "123-456-78-9" ;
  7:   
  8:   //너거은행 계좌번화와 입금    
  9:   System.out.println("\n너거은행 계좌번호 : " + yourbank.accountNo) ;  
 10:   yourbank.deposit(50000) ;
 11:   System.out.println("너거은행 잔고확인 : " + yourbank.remainAmount) ;
 12: 
 13:   //Account를 상속받은 클래스
 14:   System.out.println("\nCheckCardAccount 클래스 관련 내용") ;
 15:   System.out.println("=================================") ;
 16:   CheckCardAccount duna = new CheckCardAccount() ;
 17:   duna.accountNo = "456-789-10-2" ;
 18: 
 19:   //두나은행 계좌번호와 입금
 20:   System.out.println("\n두나은행 계좌번호 : " + duna.accountNo) ;
 21:   duna.deposit(60000) ;
 22:   System.out.println("두나은행 잔고확인 : " + duna.remainAmount) ;
 23: 
 24:   //CheckCardAccount에만 있는 변수
 25:   duna.directCardNo = "Check-1234" ;
 26:   System.out.println("\n" + duna.directCardNo) ;
 27:  }
 28: }