抽象类 与 接口 总结

抽象类的成员特点:
成员变量:既可以是变量,也可以是常量,abstract不能修饰成员变量
构造方法:有 用于子类访问父类数据的初始化
成员方法:既可以是抽象的,也可以是非抽象的

abstract不能与static共存:
1.被abstract修饰的方法没有方法体
2.被static修饰的可以用类名点调用

abstract不能与final共存:
1.被abstract修饰的方法强制子类重写
2.被final修饰的不让子类重写

abstract和private
1.被abstract修饰的是为了让子类看到并强制重写
2.被private修饰不让子类访问

接口的特点:
1.接口用关键字interface表示
2.类实现接口用implements表示
3.接口不能实例化
4.接口的子类
可以是抽象类,但意义不大
可以是具体类,重写接口中的所有抽象方法
5.接口中的方法都是抽象的
成员变量:只能是常量,并且是静态的且公共的
默认修饰符:public static final 这三个关键字没有顺序

构造方法:接口没有构造方法
成员方法:只能是抽象方法
默认修饰符:public abstract
一个类不继承任何类会自动默认继承Object类

抽象类 和 接口的区别:
1.成员区别
抽象类:
成员变量:可以变量,可以常量
构造方法: 有
成员方法:可以抽象,也可以非抽象

接口:
成员变量:只可以常量
成员方法:只可以抽象

2.关系区别
类与类:继承,单继承
类与接口:实现,单实现,多实现
接口与接口:继承,单继承,多继承

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

猜你喜欢

转载自blog.csdn.net/syl2850246/article/details/88063904
今日推荐