【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、接口不能有构造方法

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值