Java抽象类与接口

一、抽象类

1.概念

Java中可以定义没有方法体的方法,该方法由其子类来具体的实现。该没有方法体的方法我们称之 为抽象方法,含有抽象方法的类我们称之为抽象类。

2.抽象方法

只包含一个方法名,没有方法体,使用abstract修饰。

3.抽象类的特点

a.抽象类不能有对象,(不能用new此关键字来创建抽象类的对象);
b.有抽象方法的类一定是抽象类,但是抽象类中不一定有抽象方法;可以有0到n个抽象方法,以及0到n具体方法。
c.抽象类中的抽象方法必须在子类中被重写。抽象方法生来就是要被重写的,而且是必须重写。
d.抽象类和普通类一样,各种形式的成员变量都可以声明,也需要构造方法。

4.示例

  abstract class Demo { 
  abstract void method1(); 
  abstract void method2(); 
  … 
  } 

二、接口

1.概念

接口就是一个规范和抽象类比较相似。它只管做什么,不管怎么做。通俗的讲,接口就是某个事物对外提供的一些功能的声明,其定义和类比较相似,只不过是通过interface关键字来完成。

比抽象类更加抽象的是接口,在接口中所有的方法都是抽象的。

2.特性

  • 接口没有构造函数,也不可以被实例化
  • 接口中的方法默认是public abstract的,变量默认是public static final的
  • 接口可以被扩展,一个接口可以继承多个接口

3.示例

  interface Demo { 
  void method1(); 
  void method2(); 
  … 
  } 

三、区别

总的来说,抽象类和接口主要有以下三种区别:

1、抽象类可以提供成员方法的实现细节,而接口中只能存在public abstract 方法;
2、抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public static final类型的;
3、一个类只能继承一个抽象类,而一个类却可以实现多个接口。
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值