A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 果蝇 中级黑马   /  2015-9-2 23:31  /  559 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/*

        返回值类型的问题

        类名: 作为返回值类型,实际上要的该类的对象.
        抽象类: 作为返回值类型,实际上要的该类子类的对象.
        接口:   作为返回值类型,实际上要的该类子类的对象( 子类就是它 实现类 )



        发牌机发扑克案例

        发牌机 类 {
                发扑克
                public Card faCard(){
                        Syso("发牌");
                        Card c = new Card();
                        return c;
                }

                //发牌

                public  Pai faPai(){
               
                        Pai p = new Card();
                        return pai;
                }
                // 发具有魔术功能的东西
               
                public  Magic  faMagic(){
                       
                        Magic m = new 子类 ;
                        return m;
                }
               

        }

        扑克类

class Card extends Pai implements Magic  {
        炸金花
        public void zhaJinHua(){
                syso(" 扎金花 ");
        }
       
        //重写


}



interface Magic {
       
}
*/

class FaPaiJiTest{
        public static void main(String[] args){
                //创建发牌机
//                FaPaiJi fpj = new FaPaiJi();
//                // 根据返回值类型, 定义变量接收
////                Card card = fpj.faCard();
////                card.zhaJinHua();
//
//                //根据返回值类型,定义变量 Pai
////                Pai p =  fpj.faPai();
////                p.high();   // 运行 看右边
//
//                //根据返回值类型,定义变量 Magic
//
//                Magic m = fpj.faMagic();
//                m.moShu();



                        //创建人

                        Person p = new Person();

                        FaPaiJi fpj = p.getFaPaiJi();
                        Card c = fpj.faCard();
                        c.zhaJinHua();
                        System.out.println("------------");

                        //改进   链式编程
                        new Person().getFaPaiJi().faCard().zhaJinHua();


                       
        }       
}

//人类 , 拿来发牌机  
class  Person{
        // 拿发牌机方法
        public FaPaiJi getFaPaiJi(){
                System.out.println("人拿来了发牌机 ");
                return new FaPaiJi();
        }
}

//发牌机  

class FaPaiJi{
        //发扑克的方法
        public Card faCard(){
                System.out.println("开始发牌.....");
                //创建Card
//                Card c = new Card();
//                return c;
                return new Card();  //匿名对象
        }

        // 发牌 (抽象 牌 ,扑克 ....)
        public Pai faPai(){
                System.out.println("发牌机 2.0 ,  开始发牌.....");
                //创建 Pai的 子类对象
                Pai p = new Card();
                return  p;
        }

        // 发具有魔术功能的东西
        public Magic faMagic(){
                System.out.println("发牌机 3.0 ,  开始发牌.....");
                //创建 Magic的 子类对象
                Magic m = new Card();
                return  m;
        }

}

//定义抽象 牌

abstract class Pai{
        // 爽
        public abstract void high();

}
//定义Card
class  Card  extends Pai implements Magic{
        //炸金花
        public void zhaJinHua(){
                System.out.println(" 扎金花 ");
        }

        public void high(){
                System.out.println("没事打个扑克 , high一下 下 ");
        }

        //重写

        public void moShu(){
                System.out.println("扑克 , 变魔术,show 一下  ");
        }
}

//定义接口
interface  Magic {

        //魔术方法
        public abstract void moShu();
}

1 个回复

倒序浏览
横创 来自手机 中级黑马 2015-9-2 23:33:01
沙发
前排支持
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马