抽象类

#银行系统:写用户帐户类(定期/活期)(计算利息方法不同)
帐户类Account包括计算利息,无法用static和final实现

 

#abstract抽象就是用来解决类似问题
abstract代表无须实现或者无法实现
可以修饰类/方法,即抽象类/抽象方法

 

#抽象类有构造,但无法调用(new 抽象类构造错!)

 

#抽象方法:没有方法体。
public abstract 返回类型 方法名(参数列表)[throw  XXException];

 

#1.抽象类的引用指向的是非抽象的子类对象(多态)
2.抽象方法的调用其实是调用子类重写以后的方法(非抽象)

 

#为了保证非抽象子类重写抽象方法:
抽象类可以不包括抽象方法,含有抽象方法的类必须是抽象类

 

上例中银行活期/定期存款代码:

//银行账户类

public abstract class Account {
 private double total = 2000;

 public Account() {
 }

 // 抽象方法具有 强制性/规范性
 public abstract double get();// 抽象方法

 public double getTotal() {
  return total;
 }

 public void setTotal(double total) {
  this.total = total;
 }
}
//活期类

public class HAccount extends Account {

 public double get() {
  return this.getTotal() * 0.02;
 }

 public static void main(String[] args) {
  Account a = new HAccount();
  System.out.println(a.get());
 }
}

//定期类

public class DAccount extends Account {
 private double i = 0.03;

 public double get() {
  return this.getTotal() * i;
 }

 public static void main(String[] args) {
  Account a = new DAccount();
  System.out.println(a.get());

 }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值