题目:定义汽车人Autobots(擎天主代表,可以变成大卡车,在构造函数中完成初始化)
定义霸天虎Decepticons(威震天为代表,可以变成枪,在构造函数中完成初始化)
特征:故乡,名字,对应的车型,汽车人形态(0--汽车 1--人型),霸天虎形态(0-机器,1-人形),汽车人和霸天虎的最大能量
行为:射击子弹(每次设置最大杀伤力10),防御(受到攻击量),变形deform
 要用继承来写,我需要源代码。 我只能写出一部分,所以想借源代码参考下。

解决方案 »

  1.   

    不是很清楚Lz的要求,没事瞎凑个热闹interface TransformerAction {
        int shoot();
        void defend(int damage);
        void deform();
    }enum TransformerShape {
        HUMAN("human"),
        CAR("car"),
        WEAPON("weapon");
        
        TransformerShape(String name) {
        
        }
    }abstract class Transformer implements TransformerAction {
        static final int MAX_DAMAGE = 10;
        protected TransformerShape shape;
        protected String name;
        protected String hometown;
        protected int power;
        
        Transformer(TransformerShape shape, String name, String hometown, int power) {
            this.shape = shape;
            ...
        }
        
        public TransformerShape getTransformerShape() {
            return shape;
        }
        
        public void setTransformerShape(TransformerShape shape) {
            this.shape = shape;
        }
        
        public int getTransformerState() {
            return (HUMAN == this.shape) ? 1 : 0;
        }
        ...
        
        public int shoot() {
            ...
            return (int)Math.radom()*MAX_DAMAGE;
        }
        
        public void defend(int damage) {
            ...
            power -= (int)Math.radom()*damage;
        }
    }abstract class Car {}abstract class Weapon {}abstract class Autobots extends Transformer {
        protected Car car;
        Autobots(String name, String hometown, Car car, int power) {
            super(CAR, name, hometown, power);
            this.car = car;
            ...
        }
        
        public void deform() {
            if (getTransformerShape() == HUMAN) {
                setTransformerShape(CAR);
            } else {
                setTransformerShape(HUMAN);
            }
        }
    }abstract class Decepticons extends Transformer {
        protected Weapon weapon;
        Autobots(String name, String hometown, Weapon weapon, int power) {
            super(WEAPON, name, hometown, power);
            this.weapon = weapon;
            ...
        }
        
        public void deform() {
            if (getTransformerShape() == HUMAN) {
                setTransformerShape(WEAPON);
            } else {
                setTransformerShape(HUMAN);
            }
        }
    }如果把Car和Weapon做个抽象类估计会要一些