Java--抽象类和接口

目录

抽象类:(abstract)

概念:

 特性:

抽象类与普通类,抽象方法与普通方法

方法重写:

重写与重载:

接口(interface)

概念:

作用

命名规范

接口和类的相似点

接口与类的区别

接口与抽象类的区别


抽象类:(abstract)

public abstract class pet{

}

概念

在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。

 特性

  • 抽象类不能被实例化(不能被创建对象)
  • 抽象类中有构造方法,但不能被创建对象,只能由子类的super语句来调用。
  • 抽象类可以包含main方法,他只是一个静态方法
  • 抽象类必须被继承,才能被使用
  • 一个类只能继承一个抽象类,而一个类可以实现多个接口

抽象类与普通类,抽象方法与普通方法

抽象类不能被实例化(不能被创建对象)   普通类可以被实例化

抽象方法无方法体    普通方法有方法体

抽象类中可以有抽象方法也可以有普通方法

普通类中不能有抽象方法

抽象类关键字abstract不可以和那些关键字共存?

private:相互矛盾

final:无法重写

static:一旦加上就可以通过类名直接访问,抽象方法无方法体,没有意义

方法重写

方法名,参数类型,返回值必须一致(外壳不变,核心重写!)

重写与重载

这俩无任何关系。

方法重载:一个类中,方法名相同,参数列表不同(类型,数量,顺序),与返回值和修饰符无关

方法重写:子类中的方法名与父类中的方法名相同,参数列表相同,返回值类型相同,为重写。

方法重载是一个类的多态性表现,而方法重写是子类与父类的一种多态性表现

接口(interface)

概念

一个抽象类型是抽象方法的集合。

接口不是类

接口的实现:implements

作用

提高代码的可拓展性和后期的维护性

命名规范

以I开头,以包名结尾

接口和类的相似点

  1. 一个接口可以有多个方法
  2. 接口的文件保存在.java结尾的文件中,文件名使用接口名
  3. 接口的字节码文件保存在.class结尾的文件中
  4. 接口相应的字节码文件必须在与包名称相匹配的目录结构中

接口与类的区别

  1. 接口不能实例化对象
  2. 接口中没有构造方法
  3. 接口中所有的方法必须是抽象方法
  4. 接口只能声明静态常量,不能声明成员变量
  5. 接口可以多实现

接口与抽象类的区别

  1. 抽象类中的方法可以有方法体,就是能实现方法的具体功能,但接口中的方法不行,接口没有方法体
  2. 抽象类中的成员变量可以是各种类型的,而接口中只能是静态常量
  3. 接口中不能含有静态代码块以及静态方法(用 static 修饰的方法),而抽象类是可以有静态代码块和静态方法
  4. 一个类只能继承一个抽象类,一个类可以实现多个接口。
  • 30
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值