public class Test
{
public static void main(String[] args)
{
Person person = new Person(); IRead read = new Book();//看了这读物后想买下它
person.read(read);
//person.buy(read);
}
}//读物
interface IRead
{
void content();
}//商品
interface Goods
{
void buy();
}//图书
class Book implements IRead,Goods
{
public void content()
{
System.out.println("沉思录....");
}
public void buy()
{
System.out.println("我买下这本书");
}
}//报纸
class NewPaper implements IRead,Goods
{
public void content()
{
System.out.println("今天的头条是.....");
}
public void buy()
{
System.out.println("我买十份报纸");
}
}class Person
{ //预览读物
public void read(IRead read)
{
read.content();
}
//买下商品(这是要预览读物后才决定买不买的,不能首先就调用buy方法)
public void buy(Goods goods)
{
goods.buy();
}
}
现在的问题就在于在main方法里面,顾客预览了商品后无法决定买不买,要怎么解决这个问题?
返回true代表预览满意,将会买。
返回false代表不满意,将不会买。
buy方法中上来先判断标志位,当标志为true时继续执行buy的逻辑,当为false时,提示后退出方法。
是这个意思不?
我说的不是这个,是原本读物是实现的IRead,现在要买了,因为buy这个方法在Goods里,而不再IRead里。
class Book implements IRead,Goods
{ private boolean read = false;
public void content()
{
System.out.println("沉思录...."); }
public void buy()
{ if(read){
System.out.println("我买下这本书");
}else{
System.out.println("您还没有预览该商品!");
}
}
}
Book实现了Goods接口,就有buy方法了。为什么我不把buy方法放到IRead里,因为一件读物它不一定是商品,一件商品不一定是读物
不知道你在纠结什么
public class Test2 {
public static void main(String[] args) {
Person person = new Person(); Book read = new Book(); // 看了这读物后想买下它
person.read(read); person.buy(read);
}
}// 读物
interface IRead {
void content();
}// 商品
interface Goods {
void buy();
}// 图书
class Book implements IRead, Goods {
private boolean read = false; public void content() {
System.out.println("沉思录....");
} public void buy() {
if (read) {
System.out.println("我买下这本书");
} else {
System.out.println("您还没有预览该商品!");
}
}
}// 报纸
class NewPaper implements IRead, Goods {
public void content() {
System.out.println("今天的头条是.....");
} public void buy() {
System.out.println("我买十份报纸");
}
}class Person { // 预览读物
public void read(IRead read) {
read.content();
} // 买下商品(这是要预览读物后才决定买不买的,不能首先就调用buy方法)
public void buy(Goods goods) {
goods.buy();
}
}
我刚想起来,如果直接Book book = new Book()这样的话,那我还声明结构作甚?