黑马程序员技术交流社区

标题: 抽象类和接口 复习的一点小总结 不足之处多补充 [打印本页]

作者: 18273250088    时间: 2015-11-8 21:59
标题: 抽象类和接口 复习的一点小总结 不足之处多补充
抽象类:就是看不懂得类

抽象类的特点:抽象类和抽象方法必须被abstract 关键字修饰  抽象类中不一定要有抽象方法 而抽象方法必须在抽象类中
              抽象类不能直接被实例化 抽象类的子类要么是抽象类 要么是实例化了抽象类中所有的抽象方法
抽象类的成员方法特性:
        * a:抽象方法 强制要求子类做的事情。
        * b:非抽象方法 子类继承的事情,提高代码复用性

* 一个抽象类如果没有抽象方法,可不可以定义为抽象类?如果可以,有什么意义?
        * 可以
        * 这么做目的只有一个,就是不让其他类创建本类对象,交给子类完成

abstract不能和 private  static final 这些关键字共存
因为 private 关键字修饰的成员方法和成员变量不能被子类继承,也不能被子类直接进行重写和调用
     static 关键字修饰的成员方法能直接通过类名点方法名调用 而abstract 修饰的没有方法体 调用没任何意思
     final 关键字修饰的类  成员变量  方法 是不能被继承和更改的 与abstract 关键字是相斥关系

接口特点
        * a:接口用关键字interface表示       
                * interface 接口名 {}
        * b:类实现接口用implements表示
                * class 类名 implements 接口名 {}
        * c:接口不能实例化
                * 那么,接口如何实例化呢?
                * 按照多态的方式来实例化。
        * d:接口的子类
                * a:可以是抽象类。但是意义不大。
                * b:可以是具体类。要重写接口中的所有抽象方法



接口成员特点
        * 成员变量;只能是常量,并且是静态的并公共的。
                        * 默认修饰符:public static final
                        * 建议:自己手动给出。
        * 构造方法:接口没有构造方法。
        * 成员方法:只能是抽象方法。
                        * 默认修饰符:public abstract
                        * 建议:自己手动给出。



类与类,类与接口,接口与接口的关系
        * a:类与类:
                * 继承关系,只能单继承,可以多层继承。
        * b:类与接口:
                * 实现关系,可以单实现,也可以多实现。
                * 并且还可以在继承一个类的同时实现多个接口。
        * c:接口与接口:
                * 继承关系,可以单继承,也可以多继承。

A:成员区别
        * 抽象类:
                * 成员变量:可以变量,也可以常量
                * 构造方法:有
                * 成员方法:可以抽象,也可以非抽象
        * 接口:
                * 成员变量:只可以常量
                * 成员方法:只可以抽象
               
B:关系区别
        * 类与类
                * 继承,单继承
        * 类与接口
                * 实现,单实现,多实现
        * 接口与接口
                * 继承,单继承,多继承

设计理念区别
        * 抽象类 被继承体现的是:”is a”的关系。抽象类中定义的是该继承体系的共性功能。
        * 接口 被实现体现的是:”like a”的关系。接口中定义的是该继承体系的扩展功能。







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2