โถ ์์์ด๋ ?
์์์ ์ฐ๋ฆฌ๊ฐ ์ผ๋ฐ์ ์ผ๋ก ์ ๋ฏ ๋ฌด์์ธ๊ฐ๋ฅผ ๋ฌผ๋ ค๋ฐ๋๋ค๋ ์๋ฏธ.
Bํด๋์ค๊ฐ Aํด๋์ค๋ฅผ ์์๋ฐ์ผ๋ฉด Bํด๋์ค๋ Aํด๋์ค์ ๋ฉค๋ฒ ๋ณ์์ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋จ์ ์ ์ง ๋ณด์ํ๊ธฐ ํธํ๊ณ ํ๋ก๊ทธ๋จ์ ์์ ํ๊ฑฐ๋ ์๋ก์ด ๋ด์ฉ์ ์ถ๊ฐํ๋ ๊ฒ์ด ์ ์ฐํ๋ฐ, ๊ทธ ๊ธฐ๋ฐ์ด ๋๋ ๊ธฐ์ ์ด ๋ฐ๋ก ์์์ด๋ค.
์๋ฐ ๋ฌธ๋ฒ์ผ๋ก ์์์ ๊ตฌํํ ๋๋ โextends ์์ฝ์ด๋ฅผ ์ฌ์ฉํ๋ค.
โ
โ
โ
โถ ์์์ ์ฌ์ฉํ์ฌ ๊ณ ๊ฐ ๊ด๋ฆฌ ํ๋ก๊ทธ๋จ ๊ตฌํํ๊ธฐ
package inheritance;
public class Customer {
// ๋ฉค๋ฒ ๋ณ์
private int customerID; // ๊ณ ๊ฐ ์์ด๋
private String customerName; // ๊ณ ๊ฐ ์ด๋ฆ
private String customerGrade; // ๊ณ ๊ฐ ๋ฑ๊ธ
int bonusPoint; // ๋ณด๋์ค ํฌ์ธํธ
double bonusRatio; // ์ ๋ฆฝ ๋น์จ
public Customer() { // ๋ํดํธ ์์ฑ์
customerGrade = "SILVER"; // ๊ธฐ๋ณธ ๋ฑ๊ธ
bonusRatio = 0.01; // ๋ณด๋์ค ํฌ์ธํธ ๊ธฐ๋ณธ ์ ๋ฆฝ ๋น์จ
}
public int calcPrice(int price) { // ๋ณด๋์ค ํฌ์ธํธ ์ ๋ฆฝ, ์ง๋ถ ๊ฐ๊ฒฉ ๊ณ์ฐ ๋ฉ์๋
bonusPoint += price * bonusRatio; // ๋ณด๋์ค ํฌ์ธํธ ๊ณ์ฐ
return price;
}
public String showCustomerInfo() { // ๊ณ ๊ฐ ์ ๋ณด๋ฅผ ๋ฐํํ๋ ๋ฉ์๋
return customerName + " ๋์ ๋ฑ๊ธ์ " + customerGrade + "์ด๋ฉฐ, ๋ณด๋์ค ํฌ์ธํธ๋ " + bonusPoint + "์
๋๋ค.";
}
}
package inheritance;
public class VIPCustomer extends Customer {
private int customerID; // ๊ณ ๊ฐ ์์ด๋
private String customerName; // ๊ณ ๊ฐ ์ด๋ฆ
private String customerGrade; // ๊ณ ๊ฐ ๋ฑ๊ธ
int bonusPoint; // ๋ณด๋์ค ํฌ์ธํธ
double bonusRatio; // ์ ๋ฆฝ
// VIP ๊ณ ๊ฐ ๊ด๋ จ ๊ธฐ๋ฅ์ ๊ตฌํํ ๋๋ง ํ์ํ ๋ฉค๋ฒ ๋ณ์
private int agentID;
double saleRatio;
public VIPCustomer() { // ๋ํดํธ ์์ฑ์
customerGrade = "VIP";
bonusRatio = 0.05;
saleRatio = 0.1;
}
public int calcPrice(int price) {
bonusPoint += price * bonusRatio;
return price - (int) (price * saleRatio); // ํ ์ธ์จ ์ ์ฉ
}
public int getAgentID() { // VIP ๊ณ ๊ฐ์๊ฒ๋ง ํ์ํ ๋ฉ์๋
return agentID;
}
public String showCustomerInfo() {
return customerName + " ๋์ ๋ฑ๊ธ์" + customerGrade + "์ด๋ฉฐ, ๋ณด๋์ค ํฌ์ธํธ๋" + bonusPoint + "์
๋๋ค.";
}
}
-์ฝ๋๋ฅผ ์ ๋ค ๋ณด๋ฉด customerGrade ๋ณ์์์ ์ค๋ฅ๊ฐ ๋ฐ์ํจ. private ๋ณ์๋ก ์ ์ธํ๊ธฐ๋๋ฌธ์ด๋ค.
โ
package inheritance;
public class CustomerTest1 {
public static void main(String[] args) {
Customer customerLee = new Customer();
customerLee.setCustomerID(10010); // customerID๋ protected ๋ณ์์ด๋ฏ๋ก set() ๋ฉ์๋ ํธ์ถ
customerLee.setCustomerName("์ด์์ "); // customerName๋ protected ๋ณ์์ด๋ฏ๋ก set() ๋ฉ์๋ ํธ์ถ
customerLee.bonusPoint = 1000;
System.out.println(customerLee.showCustomerInfo());
VIPCustomer customerKim = new VIPCustomer();
customerKim.setCustomerID(10020); // customerID๋ protected ๋ณ์์ด๋ฏ๋ก set() ๋ฉ์๋ ํธ์ถ
customerKim.setCustomerName("๊น์ ์ "); // customerName๋ protected ๋ณ์์ด๋ฏ๋ก set() ๋ฉ์๋ ํธ์ถ
customerKim.bonusPoint = 10000;
System.out.println(customerKim.showCustomerInfo());
}
}
<์คํ ๊ฒฐ๊ณผ>
โถ ํ์ ํด๋์ค๊ฐ ์์ฑ๋๋ ๊ณผ์
package inheritance;
public class CustomerTest2 {
public static void main(String[] args) {
VIPCustomer customerKim = new VIPCustomer(); // ํ์ ํด๋์ค ์์ฑ
customerKim.setCustomerID(10020);
customerKim.setCustomerName("๊น์ ์ ");
customerKim.bonusPoint = 10000;
System.out.println(customerKim.showCustomerInfo());
}
}
<์คํ ๊ฒฐ๊ณผ>
-์์ ํด๋์ค๋ฅผ ์์๋ฐ์ ํ์ ํด๋์ค๊ฐ ์์ฑ๋ ๋๋ ๋ฐ๋์ ์์ ํด๋์ค์ ์์ฑ์๊ฐ ๋จผ์ ํธ์ถ๋๋ค.
'Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java] ๋ฉ์๋ ์ค๋ฒ๋ผ์ด๋ฉ (0) | 2021.02.19 |
---|---|
[Java] ๋ถ๋ชจ๋ฅผ ๋ถ๋ฅด๋ ์์ฝ์ด, super (0) | 2021.02.19 |
[Java] ์ฐ์ต๋ฌธ์ (0) | 2021.02.19 |
[Java] ArrayList ํด๋์ค (0) | 2021.02.19 |
[Java] ์ด์ฐจ์ ๋ฐฐ์ด (0) | 2021.02.19 |
๋๊ธ