抽象类和接口

abstract and interface 

共同点:

一、方法都是public(抽象类中的抽象方法)

二、都不可以被实例化,需要用子类继承抽象类或实现接口,重写抽象方法。

不同点:

一、抽象类中可以定义变量,接口中定义变量默认为全局常量(public static final)所以必须赋初值

public interface Human{
    int a = 0; // 等价为: final int a = 0;
}

二、抽象类中可以有非抽象方法,而接口中方法必须都是抽象的(当然可以不写public abstract关键字)。

三、一个类实现抽象类只需要实现部分方法(实现类为抽象类因为还存在抽象方法没实现),实现接口需要实现所有方法

四、一个类可以实现多个接口(implements),但只能实现一个抽象类(extends)

需要注意的:

有抽象方法的类必须声明为抽象类

抽象类与抽象方法的定义

abstract class 类名{
    public abstract 返回值 方法名(形参列表)//当然 public可以省略不写
}

接口定义

public interface 接口名{
    //方法可以省略 public 与 abstract
    //可以有常量,不能有变量,当然可以省略 public static final 关键字
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值