如何让女朋友理解 java中的继承

2019-02-20  本文已影响0人  e5d2c7f0a5c4

举个例子来说:

我们在选择好英雄之后,会进行铭文的选择. 而一大堆的铭文是分很多种类的

image

有的是增加物理攻击的 有的是增加护甲的 有的是增加法强的.
不像英雄一样 都有攻击力 法强 护甲等 所以就不能通过一个Class来描述了.
我们可以先来尝试建立两个class
一个是增加攻击力的铭文 物理攻击铭文
一个是增加法强的铭文 法强铭文

package com.emp.usercenter.pc.test;

/**
 * @author employeeeee
 * @Descriotion:
 * @date 2019/2/20 14:02
 */
public class RuneA {
    private String name;
    private int price;
    private int physicProperty;

}

package com.emp.usercenter.pc.test;

/**
 * @author employeeeee
 * @Descriotion:
 * @date 2019/2/20 14:05
 */
public class RuneB {
    private String name;
    private int price;
    private int magicProperty;

}

我们可以看到 这两种铭文虽然是不同的属性 但是他们是有相同的属性的 就是名字和价格
那么如果有很多种 种类的铭文出现的话 我们每次都要这样定义就是很麻烦的
所以我们先定义一个铭文类,让其它的不同种类的铭文来继承这个类

package com.emp.usercenter.pc.test;

/**
 * @author employeeeee
 * @Descriotion:
 * @date 2019/2/20 14:08
 */
public class RuneBasic {
    private String name;
    private int price;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getPrice() {
        return price;
    }

    public void setPrice(int price) {
        this.price = price;
    }
}

这样物理攻击符文就可以这样定义

package com.emp.usercenter.pc.test;

/**
 * @author employeeeee
 * @Descriotion:
 * @date 2019/2/20 14:02
 */
public class RuneA extends RuneBasic{

    private int physicProperty;

}

看起来是不是简洁多了 然后我们来做一个测试 看一看物理攻击符文是否继承了这两个属性

package com.emp.usercenter.pc.test;

/**
 * @author employeeeee
 * @Descriotion:
 * @date 2019/2/20 14:10
 */
public class test {
    public static void main(String[] args) {
        RuneA a = new RuneA();
        a.setName("我是一个攻击铭文");
        a.setPrice(40);
        a.setPhysicProperty(3);
    }
}

可以看到是可以给物理铭文赋值名字和价格属性的.
这样 我们就定义了一个新的物理攻击铭文A 这就是继承
例子是比较简单的
实际的项目开发中可能是会有多个继承的.

上一篇 下一篇

猜你喜欢

热点阅读