Java面向对象(中级)练习题与总结
题目
- 理清继承
- 一个编写思路
- equals与==的区别
- 多态的总结
对应的代码和思路
- 继承代码分析
输出“Test”“Demo”“Rose”“Jack”
输出"john"“Jack”
先编写一个测试类,再逐步完善功能
package Bank;
public class myAccount {
private double balance;
public myAccount(double balance) {
this.balance = balance;
}
public myAccount() {
}
public void deposit(double amount) {
balance += amount;
}
public void withdraw(double amount) {
balance -= amount;
}
public double getBalance() {
return balance;
}
public void setBalance(double balance) {
this.balance = balance;
}
}
//===========================================================================
package Bank;
//测试类
public class bankAccount extends myAccount{
@Override
public void deposit(double amount) {
super.deposit(amount );
}
@Override
public void withdraw(double amount) {
super.withdraw(amount );
}
public bankAccount(double balance) {
super(balance);
}
public bankAccount() {
}
}
//======================================================================
package Bank;
public class savingsAccount extends myAccount{
private double rate = 0.1;
private int count = 0;
public savingsAccount(double balance) {
super(balance);
}
@Override
public void deposit(double amount) {
if (count < 3){
super.deposit(amount );
}else {
super.deposit(amount - 1);
}
count++;
}
@Override
public void withdraw(double amount) {
if(count <= 3) {
super.withdraw(amount );
}
else {
super.withdraw(amount + 1);
}
}
public void earnMonthlyInterest(){
count = -1;
deposit(getBalance() * rate);
}
public double getRate() {
return rate;
}
public void setRate(double rate) {
this.rate = rate;
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
}
//====================================================================
package Bank;
public class test {
public static void main(String[] args) {
savingsAccount person = new savingsAccount(1000);
person.deposit(100);
person.deposit(100);
person.deposit(100);
System.out.println(person.getBalance());
person.deposit(100);
System.out.println(person.getBalance());
person.earnMonthlyInterest();
person.deposit(100);
person.deposit(100);
person.deposit(100);
System.out.println(person.getBalance());
}
}
在上面的bankAccount是测试类,savingsAccount是在bankAccount上的衍生与功能完善.
在实际编程中应该应用这种建立模块功能的搭建.
3.
4.