java简单编程思想
2014-02-28 13:10
681 查看
抽象类必须要被继承的
通过一个案例说明抽象类和接口额使用。在一个超市的管理软件中,所有的商品读具有价格,我们可以把商品的价格、设置和获取商品价格的方法,定义成一个抽象类Goods:
abstract class Goods {
protected double cost;
abstract public void setCost();
abstract public double getCost();
}
某些商品,例如食品,具有一定保质期,我们需要为这类商品设置过期日期,并希望在过期时,能够通知过期消息。对于这样的行为,我们是否可以把他们也整合在类Goods中呢?显然这并不合适,因为对于其他商品来说,并不存在这样的行为,比如服装,而Goods中的方法,应该是所有子类公有的行为。我们可以将过期这样的行为,设计在一个借口Expiration中,Goods的子类可以选择是否实现该接口。
interface Expiration {
void setExpiration();
void expira();
}
对于服装这类商品,我们需要继承抽象类Goods中的属性和方法,对于其中的抽象方法必须提供具体的实现,置于Expiration接口可以完全不管。而食品这样的商品,我们既要继承Goods抽象类,又要实现Expiration接口
class Clothes extends Goods {
public vod setCost() { ...... }
public double getCost() {
return cost;
}
}
class Food extends Goods implements Expiration {
.....................
}
通过一个案例说明抽象类和接口额使用。在一个超市的管理软件中,所有的商品读具有价格,我们可以把商品的价格、设置和获取商品价格的方法,定义成一个抽象类Goods:
abstract class Goods {
protected double cost;
abstract public void setCost();
abstract public double getCost();
}
某些商品,例如食品,具有一定保质期,我们需要为这类商品设置过期日期,并希望在过期时,能够通知过期消息。对于这样的行为,我们是否可以把他们也整合在类Goods中呢?显然这并不合适,因为对于其他商品来说,并不存在这样的行为,比如服装,而Goods中的方法,应该是所有子类公有的行为。我们可以将过期这样的行为,设计在一个借口Expiration中,Goods的子类可以选择是否实现该接口。
interface Expiration {
void setExpiration();
void expira();
}
对于服装这类商品,我们需要继承抽象类Goods中的属性和方法,对于其中的抽象方法必须提供具体的实现,置于Expiration接口可以完全不管。而食品这样的商品,我们既要继承Goods抽象类,又要实现Expiration接口
class Clothes extends Goods {
public vod setCost() { ...... }
public double getCost() {
return cost;
}
}
class Food extends Goods implements Expiration {
.....................
}
相关文章推荐
- Java编程思想之15.2简单泛型
- java编程思想随笔(四)/违例简单使用
- Java编程思想 之 线程简单应用
- java编程思想阅读笔记(一)
- Java编程思想之类再生
- 【java编程思想--学习笔记(二)】访问控制-Java访问权限修饰词
- java编程思想-----笔记(一)____万物皆对象
- java例程练习(网络编程[简单双向通信试验])
- java TCPSocket编程 简单示例
- java编程思想 第二章练习1
- JAVA编程思想-第十一章 持有对象
- 《Java 编程思想》 学习笔记2
- java编程思想阅读笔记(十)I/O系统(上)
- Java编程思想 第一章
- 建立编程思想——Java能力升级之路(1)
- 5初始化与清理-Java编程思想
- java网络编程及简单聊天
- 黑马程序员——java基础--编程思想
- JAVA编程思想笔记--并发
- java工具-IntelliJ和数学思想对编程