Java零基础入门——抽象和接口

抽象abstract

abstract 修饰符

  • 用 abstract 修饰的方法叫做抽象方法,不能有方法体
  • 拥有抽象方法的类必须是抽象类
  • 抽象类中可以存在不是抽象方法的普通方法
  • 抽象类必须被继承
  • 抽象方法必须在子类中重写
  • 抽象类不能直接创建对象,需要通过子类对象进行调用

接口 interface

接口的定义

public interface 接口名称{
	/*成员*/
}

接口中的成员

接口中的常量

  • 格式:public static final 常量名称 = 值
  • 注意事项
    • final 修饰的变量不能改变
    • 接口中的常量必须赋值
    • 常量使用大写字母、匈牙利命名法

接口中的抽象方法

接口中的抽象方法必须用 public abstract 修饰

接口中的默认方法

  • 格式:public default 返回值类型 方法名(参数列表){方法体}
  • 注意事项
    • 用于接口升级
    • 通过实现类的对象可以直接调用
    • 默认方法也可以在实现类中进行重写
    • Java8(包含)以上版本

接口中的静态方法

  • 格式:public static 返回值类型 方法名(参数列表){方法体}
  • 注意事项
    • 不能通过对象进行调用
    • 通过类名直接调用
    • Java8(不包含)以上版本

接口中的私有方法

  • 格式:private [static] 返回值类型 方法名(参数列表){ }
  • 注意事项
    • 私有方法只能提供本类中使用
    • 普通私有方法:解决普通default方法间的代码复用问题
    • 静态私有方法:解决静态default方法间的代码复用问题
    • Java8(不包含)以上版本

接口的实现

实现接口的格式

public class 类名称 implements 接口名称{
	/*........*/
}
  • 注意事项
  • 实现接口的类中必须重写接口中所有的抽象方法
  • 通过创建“实现类”对象来调用接口中的成员
  • 如果实现类中没有重写接口中所有的抽象方法,那么这个类一定是个抽象类

一个类可以同时实现多个接口

public class 类名 implements 接口名1,接口名2{
	/*........*/
}
  • 注意事项
    • 实现多个接口的时候需要重写实现所有接口当中的所有方法
    • 如果存在宠物的默认方法,那么实现中必须对重复的方法进行重写

接口的多继承

public interface 接口名 extends 接口名1,接口名2{
	/*.......*/
}
  • 注意事项
    • 如果default方法重名,需要重写default方法(子接口必须针对default方法进行重写,不能省略default)

一个类可以继承其他类的同时实现一个或多个接口

public class 子类名 extends 父类名 implements 接口名1,接口名2{
	/*.....*/
}
  • 注意事项
    • 子类中必须重写所有接口中的抽象方法
    • 若父类是抽象类,同样需要重写父类中的抽象方法
    • 父类中与接口中方法重名,有限执行父类中的方法

final 的使用

  • 修饰类:用final修饰的类不能被继承
  • 修饰局部变量:用final修饰的局部变量一旦被赋值则不允许修改
  • 修饰成员变量:用final修饰的成员变量必须初始化一个值
    • 直接赋值
    • 构造方法赋值
  • 修饰方法:用final修饰的方法不能被重写
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值