JAVA/코드

2022_10_07 연습 02 MainAccount & MyAccount & Account (상속 오버라이딩)

0304호 2022. 10. 7. 12:34

MainAccount 메인클래스

package quiz05;

public class MainAccount {
	
	public static void main(String[] args) {
		

		MyAccount myAcc = new MyAccount("홍길동","1234",3600);
		
		myAcc.deposit(800);
		myAcc.withDraw(1600);
		
		
		int bal = myAcc.getBalance();
		System.out.println(myAcc.name + "님의 계좌 잔액은 : " + bal + "원입니다.");

	}
}

Account클래스 (부모클래스 - 디폴트값)

package quiz05;

public class Account {
	
	String name;
	String password;
	int balance;
	
	Account(){
		
	}
	
	
	Account(String n, String p, int b){
		name = n;
		password = p;
		balance = b;
	}
	
	void deposit(int a) {
		balance += a;
	}
	
	void withdraw(int a) {
		balance -= a ;
	}
	
	int getBalance() {
		return balance;
	}

}

MyAccount (자식클래스 - Account클래스에서 상속받아서 withDraw메서드를 오버라이딩)

package quiz05;
import java.util.*;

public class MyAccount extends Account  {

	/*
	철수는 Account를 상속받는 나의계좌를 만드려고 한다.
	기존에 가지고 있는 withDraw()기능이 마음에 들지 않았다.
	
	Account를 상속받고
	withDraw()를 오버라이딩하여 사용자의 입력(Scanner)를 통해 비밀번호가 일치하면
	금액을 감소시키려고 한다.
	또한 balance보다 큰 금액을 출금하려는 경우에는 "잔액부족" 을 출력해주어야한다.
	withDraw() 메서드를 오버라이딩 해주세요.
	
	*/
	MyAccount(){
		
	}
	
	MyAccount(String n, String p, int b){
		name = n;
		password = p;
		balance = b;
	}
	
	void withDraw(int a){
		Scanner scan =  new Scanner(System.in);
		System.out.print("비밀번호를 입력해주세요 : ");
		String p = scan.next();
				
		if(password.equals(p)) {
			if(balance>=a) {
				balance-=a;
			}else {
				System.out.println("잔액부족");
			}
		}else {
			System.out.println("비밀번호가 틀렸습니다");
		}
	}
	
	
	
	
}