您的位置:首页 > 编程语言 > Java开发

菜鸟先飞之JAVA_抽象类和接口

2017-07-20 18:02 162 查看
抽象类

1、抽象类的概述

抽象就是看不懂的

2、抽象类的特点

1)抽象类和抽象方法必须用abstract关键字修饰

例:abstract class Demo {}

public abstract void test();

2)抽象类不一定有抽象方法,有抽象方法的类一定是抽象类或者是接口

3)抽象类不能被实例化,但是可以按照多态的方式,由具体的子类实例化

4)抽象类的子类,要么是抽象类,要么重写抽象类中的所有抽象方法

3、抽象类的成员特点

1)成员变量:既可以是变量,也可以是常量,但是abstract关键字不能修饰成员变量

2) 构造方法:有构造方法,用于子类访问父类数据的初始化

3)成员方法:既可以是抽象的,也可以是非抽象的

a) 抽象方法:强制子类做的事情,子类必须重写抽象方法

b) 非抽象方法:子类继承的事情,提高代码的复用性

c) 如果一个抽象类没有抽象方法,目的就是不让其他类创建本类对象,交给子类完成

4、abstract不能和那些关键字共存

1)abstract和static

被abstract修饰的方法没有方法体

被static修饰的可以用类名.调用,但是类名.调用抽象方法是没有意义的

2)abstract和final

被abstract修饰的方法强制子类重写

被fianl修饰的不让子类重写,所以他俩是矛盾的

3)abstract和private

被abstract修饰的是为了让类看到并强制重写

被private修饰不让子类访问

接口

1、接口的概述

从狭义的角度讲就是指java中的interface

从广义的角度讲对外提供规则的都是接口

2、接口特点

1)接口用关键字interface定义

例:interface Demo {}

2)类实现接口用implements表示

例:class Demo1 implements Demo{}

3)接口不能被实例化,可以按照多态的方式来实例化

4)接口的子类

a) 可以是抽象类,但是意义不大

b) 可以是具体类,要重写接口中的所有抽象方法

3、接口的成员特点

1)成员变量:只能是常量,并且静态的并公共的。

默认修饰符:public static final

2)构造方法:接口没有构造方法

3)成员方法:只能是抽象方法

默认
4000
修饰符:public abstract

抽象类与接口的区别

1、成员区别

抽象类:

成员变量:可以是变量,也可以是常量

构造方法:有

成员方法:可以抽象,也可以非抽象

接口:

成员变量:只可以是常量

成员方法:只可以是抽象

2、关系区别

类与类:继承关系,单继承

类与接口:实现关系,单实现,多实现

接口与接口:继承关系,单继承,多继承

3、设计理念

抽象类:被继承体现的是”is a“的关系,抽象类中定义的是该继承体系的共性功能

接口:被实现体现的是”like a"关系,接口中定义的是该继承体系的扩展功能
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java