// FaPaiJi fpj = new FaPaiJi();
// //调用发牌的方法,返回来一张扑克,那么我就用 Card接收
//
// Card c = fpj.faPai();
//
// c.jinHua();
// System.out.println("---------------");
// Pai pai = fpj.getPai();//调用发牌机的 getPai,返回值类型是 Pai 类型,那么我就用 Pai 接收
// pai.shuang();
// System.out.println();
//
// System.out.println("---------------");
// Magic m = fpj.getMagic(); //调用获取能变魔术的东西的方法
// m.bianMoShu();
// //创建对象 人
// Person p = new Person();
// //人调用获取发牌机 ,获得了发牌机
// FaPaiJi fpj = p.getFaPaiJi();
// //发牌机调用 发牌的方法,发出来 Card
// Card c = fpj.faPai();
// //Card 的 jinHua
// c.jinHua();
//链式编程
new Person().getFaPaiJi().faPai().jinHua();
}
}
class Person {
//拿来发牌机方法
/*
两个明确 :
返回值类型 : FaPaiJi
参数列表 : 无
*/
public FaPaiJi getFaPaiJi(){
System.out.println("发牌机来了~~~~~");
return new FaPaiJi();
}
}
//定义发牌机类
class FaPaiJi{
/*
获取牌的方法
两个明确:
返回值类型: Card
参数列表 : 无
*/
public Card faPai(){
System.out.println("发牌开始发牌了.....");
return new Card();
}
/*
描述不清到底发的是什么牌 ,但是,你还得具体的拿到一个实实在在对象,所以就是Pai 子类对象
*/
public Pai getPai(){
return new MaJiang();
}
/*
发出来的东西,可以的神奇的功能
两个明确 :
返回值类型 : Magic
参数列表: 无
*/
public Magic getMagic(){
return new Card();
}
}
interface Magic{
public abstract void bianMoShu();
}
class Card implements Magic{
public void jinHua(){
System.out.println("三个花色一样,就是金花");
}
public void bianMoShu(){
System.out.println("神奇的纸牌,能变魔术,但是重点还是给谁变.....");
}
}
abstract class Pai{
//爽的方法
public abstract void shuang();
}