java笔记-抽象类、接口

本文深入探讨了面向对象编程中的抽象类与接口的概念,解析了它们的语法、特性及应用场景,对比了两者之间的区别,强调了面向抽象编程的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.抽象类

语法:

[修饰符列表] abstract class 类名{
方法体;
}
  • 说明:类与类之间有共同特征,将这些具有共同特征的类再进一步抽象形成了抽象类,由于类本身是不存在的,所以抽象类无法创建对象。
  • 抽象类属于引用数据类型。
  • 抽象类无法被实例化,无法创建对象,只能继承。
  • final和abstract不能连用,对立的。
  • 抽象类有构造方法,其构造方法是给子类使用的。
  • 抽象类不一定有抽象方法,抽象方法一定要出现在抽象类中。
  • 一个非抽象的类继承抽象类,必须将抽象类的抽象方法实现了,否则编译器报错。
  • 抽象方法:没有方法体,以分号结尾,有abstract修饰。
  • 面向抽象编程,降低程序的耦合度,提高程序的扩展力

2.接口

语法:

[修饰符列表] interface 接口名{

}
  • 接口也是一种引用数据类型。编译之后也是一个class字节码文件。
  • 接口支持多继承,一个接口可以继承多个接口。
  • 接口中只包含:1.常量。2.抽象方法
  • 接口中的方法默认是 public abstract的,可以省略不写(最好写上)。
  • 接口中的的方法都是抽象方法,所以不能有方法体。
  • 当一个非抽象类实现接口的时候,必须将接口中所有的抽象方法全部实现。
  • 接口中也能实现多态,例如:
    Animal a = new cat(); // a是接口,cat是实现a接口的类
    当调用 a.move的时候,编译时期move会与a绑定, 在运行时期,调用的是cat的move方法。
  • 接口之间实现强制类型转换的时候,没有继承关系也可以强转。

接口在开发中的作用:

  • 面向接口编程。类似于usb,可以在电脑上接上使用,降低耦合度,提高扩展性。
  • 接口的使用离不开多态机制。
  • 接口可以解开实现者和调用者的耦合,调用者面向接口调用,实现者面向接口编写实现。
  • 在开发项目中,通常是将项目分成许多模块,模块之间用接口衔接。

抽象类和接口的区别:

    1. 抽象类是半抽象的
      接口是完全抽象的。
    1. 抽象类有构造方法。
      接口中没有构造方法。
    1. 类和类之间只能单继承。
      接口间支持多继承。
    1. 一个抽象类只能继承一个类(单继承)
      一个类可以同时实现多个接口。

类与类之间的关系:

  • 1.is a:Cat is a Animal。 能满足is a表示的都是继承关系。 Cat extends Animal
  • 2.has a:I has a pen。 能满足has a 关系的表示关联关系,以属性存在。
I {
Pen pen;
}
  • 3.like a:能满足like a关系的表示实现关系,类实现接口。 A implements B
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值