java中的抽象类,接口,以及抽象类和接口的区别

在这里插入图片描述

1 抽象类

  1. 抽象类的概述:我们把一个不是具体的功能称为抽象的功能,而一个类如果有具体抽象 的功能,该类必须为抽象类。

  2. 抽象类的特点:
    (1) 抽象类和抽象的方法必须用abstract关键字修饰

    (2) 抽象类中不一定有抽象方法,但是有抽象方法的类必须修饰为抽象类

    (3)抽象不能实例化,因为他不是具体的,抽象类有构造方法,这里的构 造方法主要用于子类来访问父类数据的初始化

    (4) 抽象的子类
    a: 如果不想重写抽象方法,该子类是一个抽象类
    b:重写所用 的抽象方法,这个时候子类是一个具体的类

抽象类的实例化其实是靠具体的子类来实现的。

  1. 抽象类的成员特点:

(1). 成员变量:既可以是变量,也可以是常量。

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

(3). 成员方法:既可以是抽象的,也可以是非抽象的
抽象类的成员方法特性:
(1)抽象方法 强制要求子类做的事情。
(2) 非抽象方法 子类继承的事情,提高代码复用性。

一个类如果没有抽象方法,可不可以被定义为抽象类?(可以,不让创建对象)
abstract不能和哪些关键字共存?
(private,final,static)

2 接口

  1. 接口的概述: 在java编程语言中是一个抽象类型,是抽象方法的集合,接口通常用interface来声明。
  2. 接口的特点:
    (1)接口用关键字interface表示
    格式:interface 接口名{}
    (2) 类实现接口用implements表示
    格式:class 类名 implements 接口名{}
    (3) 接口不能实例化
    按照多态的方法,由具体的子类实例化。其实这也是多态的一种,接口多态。
    (4) 接口的子类:要么是抽象类,要不重写接口中的所有抽象方法。
  3. 接口成员的特点
    (1)成员变量,只能是常量,默认修饰符号public static final
    (2)构造方法,没有,因为接口主要是扩展功能的,而没有具体存在
    (3) 成员方法.只能是抽象方法,默认修饰符是public abstract

3 抽象类和接口的区别

  1. 抽象类中的方法可以有方法体,就是能实现方法的具体功能,但是接口不行

  2. 抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public static final类型的。

  3. 接口中不能含有静态代码块以及静态方法(用static修饰方法),而抽象类是可以有静态代码块和静态方法。

  4. 一个类只能继承一个抽象类,而一个类却可以实现多个接口。

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

类和类:继承关系,只能是单继承,可以是多层继承。

类和接口:
实现关系,可以单实现,也可以多实现。
并且还可以在继承一个类的同时实现多个接口。

接口和接口:
继承关系,可以单继承,也可以多继承。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值