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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 奔跑的喜牛 中级黑马   /  2016-5-31 21:53  /  328 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文








抽象类概述及其特点
抽象看不懂的事物
抽象类的特点
a.抽象类和抽象方法必须用abstract修饰。
b.抽象类不一定有抽象方法,由抽象方法的类一定是抽象类或者接口。
c.抽象类不能实例化,要按照多态的方式,由子类进行实例化。
d.抽象类的子类要么是抽象类,要么重写抽象类中所有方法。

抽象类成员特点
a.成员变量:既可以是变量也可以是常量,abstract不能修饰成员变量
b.构造方法:有,用于子类访问父类数据的初始化。
c.成员方法:既可以是抽象的 也可以是非抽象的,
抽象类的小问题
        A:一个类如果没有抽象方法,可不可以定义为抽象类?如果可以,有什么意义?
        没有抽象方法可以定义为抽象类,目的只有一个就是不让其他类创建本类对象,由子类完成。
        B:abstract不能和哪些关键字共存
static:被abstract修饰的方法没有方法体;
                                被static修饰的可以用类名.调用,但是类名.调用抽象方法是没有意义的

final        : 被abstract修饰的方法强制子类重写;
                                被final修饰的不让子类重写,所以他俩是矛盾的

private:被abstract修饰的是为了让子类看到并强制重写,
                                被private修饰不让子类访问,所以他俩是矛盾的

         接口的概述及其特点
从狭义的角度讲就是指java中的interface
从广义的角度讲对外提供规则的都是接口
        接口的特点:
a.接口用关键字表示 interface 接口名 {}
b.类实现接口用implements表示
c.接口并不能实例化,按照多态的方式来实例化。
d.接口的子类可以是抽象类。但意义不大
可以是具体类,要重写接口中所有的抽象方法。
接口的成员特点
成员变量只能是常量,并且是静态的并公开的。
默认修饰符:public static final
构造方法:接口没有构造方法。
成员方法:只能是抽象方法。默认修饰符public abstract
抽象类和接口的区
A.成员区别
        抽象类:可以变量,也可以常量
        构造方法:有
        成员方法:可以抽象也可以非抽象。
        接口
        成员变量:只可以常量
        成员方法:只可以抽象
B.        关系区别
        类与类
                继承,单继承
        类与接口

                实现,单实现,多实现
        接口与接口
                继承,单继承,多继承
C.设计理念区别
        抽象类 被继承体现的是:is a 的关系。抽象类中定义的是该继承体系的共性功能。
        接口被实现体现的是:like a 的关系。接口中定义的是该继承体系的扩展功能。
        对事物本质的抽象用抽象类,对事物功能的扩展用接口。
















0 个回复

您需要登录后才可以回帖 登录 | 加入黑马