抽象类和接口

本文概述了Java中抽象类和接口的区别,包括抽象类的使用场景、抽象方法定义、强制子类实现、以及接口的定义、常量与抽象方法、接口实现和多实现特性。重点讲解了内置的Comparable和Cloneable接口及其在类中的应用。
摘要由CSDN通过智能技术生成

一、抽象类

来源:普通类中的方法覆写,没有办法强制要求子类,此时就要用到抽象类。
抽象类使用abstract定义,并且抽象类是普通类的超集(普通类有的东西,抽象类全部都有),抽象类只是比普通类多了一些抽象方法而已[0…N].
1.抽象类可以一个抽象方法都没有,但抽象类无法直接实例化对象,也就是无法直接new一个抽象类.
在这里插入图片描述

2.抽象方法使用abstract定义,没有方法体{},只有方法声明
//抽象方法

public abstract void printSharp();

3.抽象类必须有子类并且子类必须覆写抽象类中的所有抽象方法(除非子类也是抽象类)

二、接口interface

Java中接口使用interface关键字定义一个接口
接口中只有全局常量+抽象方法(接口中基本上全都是抽象方法).
接口表示一种行为或规范
子类实现接口使用implements实现接口

子类可以同时实现多个接口implements多个
子类实现接口必须实现接口中的所有抽象方法

java中允许多实现(同时实现多个接口),不允许多继承(只能extends一个父类)
多个接口之间使用extends来表示继承父接口

public interface InterFaceC extends InterFaceB,InterFaceA{}

一个类如果同时继承抽象类且实现接口,需先extends一个类,而后implements多个接口

public class InterfaceImplA extends Sharp implements InterFaceA,InterFaceB{}

由于接口中只有全局常量和抽象方法,因此public abstract final static 全都可以忽略不写。接口中权限默认全是public
要求:编写接口时,只保留属性类型以及名称,方法只保留返回值,方法名,参数列表

JDK中内置的两大接口

1.Comparable:表示一种能力
自定义的类不具备比较的能力要想让该类具备比较能力可以让该类实现java.lang.Comparable
CompareTo方法:
当当前对象 > 传入对象O时,返回>0
当前对象 = 传入对象O时,返回0
当前对象 < 传入对象O时,返回<0
2.Cloneable:表示克隆的能力
若在类中,想让其具备可复制的能力,就可以实现Cloneable

深拷贝:当一个对象是通过另一个对象clone出来的,此时这两个对象是相互独立的两个对象,但是这两个对象的内部包含的其他引用是相同的,这种拷贝成为浅拷贝。
浅拷贝:A是通过B拷贝来的,此时A和B包含的所有其他引用也是独立的,这种拷贝成为深拷贝

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值