【JAVASE系列】抽象类与接口

概念

抽象类:必须要用abstract class声明
接口:interface 类名,
如果一个类中的全部方法都是抽象方法,全部属性都是全局常量,那么此时就可以将这个类定义成一个接口。

抽象方法

抽象方法指的是在抽象类或者是接口中只声明未实现的方法(未实现指的是没有方法体),抽象方法必须使用abstract关键字声明


需要注意的是,一个抽象类或接口中可以没有抽象方法,即是可以空白,而抽象方法必须写在抽象类或者是接口中。(比如 Seriallizable接口,它仅仅是作为一个“标识”接口,标志实现接口的类具有序列化功能)

public  abstract class Person {
//    public abstract void say();
}  

另外还需注意的是,抽象类里的方法可以不全是抽象方法,但是接口里的方法必须全是抽象方法。

public  abstract class Person {
    public abstract void say();
    void speak(){
        System.out.println("我叫啊头");
    }
}

比较常见的注意事项:

1、抽象类能有构造方法,抽象类不可以使用new关键字创建对象,但在子类创建对象时,抽象父类也会被JVM实例化。

2、如果一个子类继承抽象类,那么必须实现其所有的抽象方法。如果有未实现的抽象方法,那么子类也必须定义为抽象类。

3、因为接口本身都是由全局常量和抽象方法组成,所以abstract可以省略,同样的,public static final也可以省略。

4、类是先继承(extends)后实现(implements)。

5、接口是用来弥补无法多继承的局限。 class 子类 implements 父接口1,父接口2...{ }

6、接口不能有构造方法

相关推荐

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:游动-白 设计师:我叫白小胖 返回首页

打赏作者

我念东风终不悔

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值