美文网首页
网易云课堂Java进阶学习笔记系列03 -- 第7周 抽象与接口

网易云课堂Java进阶学习笔记系列03 -- 第7周 抽象与接口

作者: 梦蓝樱飞2020 | 来源:发表于2017-08-27 14:56 被阅读18次

    第七周 抽象与接口
    在第一周就有一个Shape类的例子。这个类有很多的子类,每个子类也都实现了父类的方法。实际上父类Shape只是一个抽象的概念而并没有实际的意义。

    举例案例理解

    如果请你画一个圆,你知道该怎么画;如果请你画一个矩形,你也知道该怎么画。但是如果我说:“请画一个形状,句号”。你该怎么画?同样,我们可以定义Circle类和Rectangle类的draw(),但是Shape类的draw()呢?

    Shape类表达的是一种概念,一种共同属性的抽象集合,我们并不希望任何Shape类的对象会被创建出来。
    那么,我们就应该把这个Shape类定义为抽象的。我们用abstract关键字来定义抽象类。抽象类的作用仅仅是表达接口,而不是具体的实现细节。抽象类中可以存在抽象方法。抽象方法也是使用abstract关键字来修饰。

    注意: 抽象的方法是不完全的,它只是一个方法签名而完全没有方法体。

    public abstract class Shape {
        public abstract void draw(Graphics g);
        abstract void move(Graphics g);
    }
    

    如果一个类有了一个抽象的方法,这个类就必须声明为抽象类。

    如果父类是抽象类,那么子类必须覆盖所有在父类中的抽象方法,否则子类也成为一个抽象类。一个抽象类可以没有任何抽象方法,所有的方法都有方法体,但是整个类是抽象的。设计这样的抽象类主要是为了防止制造它的对象出来。

    抽象

    abstract
    抽象函数/抽象类

    • 抽象函数 -- 表达概念而无法实现具体代码的函数
    • 抽象类 -- 表达概念而无法构造出实体的类

    接口

    Java把抽象的概念又更推进了一步。这就是接口(Interface)。
    接口其实就是完全抽象的类,因此接口和类的地位是一样的,此前所有针对类的所有法则同样适用于接口。

    接口所有的方法都是没有方法体的,而且都是public abstract,即使你没有这样声明。而接口中的所有成员变量都是public static final的变量,
    并且必须有定义初始化,因为所有变量都必须在编译的时候有确定值。

    接口和类的地位是一样的。因此我们可以看到其定义方式跟类也是基本上一样的。当然,其中的所有方法都没有方法体。而当类从接口得到继承的时候,
    Java用另外一个动词:实现(implements)。当然,实现接口的类必须覆盖接口中所有的方法,否则这个类就成为一个抽象类。

    Java不允许多继承,但是允许一个类实现多个接口,也允许一个接口从多个接口得到继承,但是不允许接口从类继承。

    • 接口是纯抽象类
      • 所有的成员函数都是抽象函数
      • 所有的成员变量都是public static final
    • 接口规定了长什么样, 但是不管里面有什么

    接口设计模式

    示例二
    数据与表现分离: 细胞自动机

    CellMachine.png
    • 程序的业务逻辑与表现无关
      • 表现可以是图形的也可以是文本的
      • 表现可以是当地的也可以是远程的

    View和Field的关系

    责任驱动的设计
    GUI: 网格化

    最后运行结果:

    细胞自动机.png

    源代码下载地址:
    https://github.com/menglanyingfei/MOOC_Wengkai_Java/tree/master/code/cell_machine/src



    写在最后:
    1. 写这篇博客时听的歌曲
      http://music.163.com/#/song?id=21312101
    2. 写作时间
      2017/07/19
      22:50:00
    3. 博客链接
      欢迎访问我的主页
      http://blog.csdn.net/menglanyingfei?viewmode=contents
    4. 一些感慨
      最近一段时间, 突然发现了: 在文学上, 这句话很经典 ,

    悲剧就是把美好的东西毁灭给人看. -- 鲁迅

    生活中, 有各种开心与悲伤, 其实, 在人内心深处是有一种对美好事物的向往,
    由于它的存在, 才产生了各种目标与信念. 但人真是一种奇怪的生物, 往往对自己现在或者所拥有的事物
    不太注意和爱惜, 只在失去之后, 才知道它的珍贵!
    这或许, 谈不上一种毁灭, 但不懂得珍惜, 也是让现在的自己所拥有的美好事物一点一点地失去......
    博主并不是故意装文艺范, 而是对生活和人生的一点思考, 也希望看到这段文字的您有所感触和思考.

    相关文章

      网友评论

          本文标题:网易云课堂Java进阶学习笔记系列03 -- 第7周 抽象与接口

          本文链接:https://www.haomeiwen.com/subject/syyrkxtx.html