Java基础(十二):抽象类、接口

一、抽象类

抽象方法:用abstract修饰方法
抽象类:用abstract修饰类
抽象类的价值在于,使抽象方法让子类实现
语法:

abstract 类名{
	访问修饰符 abstract 返回类型 方法名();
}

使用细则:

  1. 抽象类不能被实例化
  2. 抽象类可以不包含abstract方法,一旦类包含abstract方法,则这个类必须声明为抽象类
  3. abstract只能修饰方法和类
  4. abstract方法在其类中不能被实现,只能被子类实现
  5. 一个类继承抽象类,那么它必须实现所有abstract方法,除非它也被声明为抽象类
  6. abstract方法不能使用private、final、static修饰,因为这些关键字都和重写相违背

二、接口

把一些没有被实现的方法封装到一起,当某个类要使用时,根据情况实现方法,接口满足“like-a”关系。
语法:

interface 接口名{
	public static final 属性;
	1.抽象方法(abstract关键字可省略):不可实现
	2.默认方法(default):在接口内实现
	3.静态方法(static):在接口内实现
}
class 类名 implements 接口1,接口2,...{
	自己属性和方法;
	实现所有抽象接口方法;
}

使用细则

  1. 接口不能被实例化
  2. 接口内的方法是public方法,抽象方法可以不用abstract修饰
  3. 普通类实现接口,所有的接口方法必须被实现,使用alt + enter快速实现
  4. 抽象类实现接口,可以不用实现所有接口方法
  5. 一个类可以实现多个接口
  6. 接口可以继承多个接口,但不能继承类
  7. 接口的属性是public static final的,例 int n1 = 10;等价于public static final int n1 = 10;
  8. 接口属性的访问形式:接口名 / 类名 / 对象名 . 属性名(类名/对象名指的是实现接口的类和即其对象)
  9. 接口的修饰符只能是public和默认

三、接口与继承、多态

(一)接口与继承

一个类只能继承一个父类,继承满足“is-a”关系
一个类可以实现多个接口,接口满足“like-a”关系

(二)接口与多态

  1. 多态参数
public class Hello {
    public static void main(String[] args) {
        Hello hello = new Hello();
        hello.printI(new Phone());
        hello.printI(new Computer());
    }
    //多态参数,可以接收实现这个接口的类的实例
    public void printI(USB usb){}
}
interface USB{}
class Phone implements USB{}
class Computer implements USB{}
  1. 多态数组
USB[] usbs = new USB[2];
usbs[0] = new Phone();
usbs[1] = new Computer();
  1. 接口存在多态传递现象
interface IH{
    void Hi();
}
interface IG extends IH{ }
//当一个接口IG继承另一个接口IH,那么类AA继承了IH的接口,即多态传递现象
class AA implements IG{
    public void Hi() {}
}

特别说明
本文章是个人整理的学习笔记,参考b站韩顺平老师的课程(【零基础 快速学Java】韩顺平 零基础30天学会Java)。老师讲的非常好,有兴趣的可以去看一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值