抽象类、接口、内部类

一、抽象类

* 定义

1、含有抽象方法的类,一定是抽象类;抽象类中,不一定要有抽象方法;

2、使用abstract修饰的类就是抽象类,使用该关键字修饰的方法,就是抽象方法;

3、抽象方法没有方法体,以分号结尾,示例:

public abstract class Test {

    public abstract void abc();

}

4、抽象类可以成为父类也可以成为子类;

5、当一个类继承了抽象类,必须重写抽象类中的所有抽象方法;

* 使用

抽象类不能被实例化

使用多态的特性,父类引用指向子类对象

抽象类的引用指向其子类的对象

二、接口

* 语法(完全的抽象类)

修饰符 interface 接口名 (-接口只能继承接口用extends){

}

1、接口中只能声明常量和抽象方法;abstract关键字可以省略;

2、接口的实现,使用implements关键字,示例

public class Test implements ITest { }

3、实现接口,必须要重写接口中所有的抽象方法;

4、接口是多继承,子接口不一定要重写父接口的抽象方法,但是实现该子接口的类,必须要重写该子接口及其父接口的所有抽象方法

5、类可以同时实现多个接口,在implements后面依次编写实现接口的接口名,用逗号隔开;

6、类可以继承一个父类,并且同时实现多个接口;语法:继承在前,实现在后

三、内部类

* 成员内部类,声明在外部类的成员部分

成员内部类

静态内部类

* 局部内部类,声明在外部类的成员方法或代码块中的类

局部内部类

匿名内部类

四、匿名内部类

* 条件

1、必须要继承一个类或实现一个接口,语法:

new 父类名 [接口名](){


};

2、匿名内部类创建后,只能被使用一次;

3、匿名内部类没有构造方法;

* 使用

new 父类构造方法{

    public void a(){}

}.a();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值