抽象类和接口

今天看了抽象类和接口的内容。

抽象类(Abstract Class),定义到处都有,主要它和实体类的区别有两点:
1.抽象类不能使用自身的构造方法创建对象
2.抽象类内部可以包含任意个抽象方法,而实体类内部不能包含抽象方法。抽象类内部包含方法、属性和实体方法。

抽象方法和实体方法的区别在于:
在声明抽象方法时,不能书写方法体的{},而只能以分号结束。
抽象方法声明:
public abstract void test(int a);
实体方法生命:
public void test(int a){
方法体
}

抽象方法所在的类必须为抽象类
如果抽象方法声明在一个类内部,则该类必须为抽象类。
在继承时,如果继承的类是抽象类,而该抽象类中包含抽象方法时,该子类必须声明成抽象类,否则出现语法错误。如果子类需要做成实体类,则必须覆盖继承的所有抽象方法。

抽象方法的主要用途有两个:
1.严禁直接创建该类的对象
2.强制子类覆盖抽象方法
---------------------------------------------------------------------------------
接口(Interface)是一种复合数据类型。在这种数据类型中,只能书写两类声明的结构:
1.常量数据。所有的常量数据都是public static
2.抽象方法。接口中的所有方法都只在逻辑上规定该方法的作用,而不能书写方法体。所有接口中的方法都是public abstract.

实现接口时不限制实现的接口的数量,任何一个类都可以实现任意多个接口,这样接口的通用性获得了极大的增强。
---------------------------------------------------------------------------------

抽象类和接口的比较:
1.什么时候使用抽象类和接口
当设计为了规范类中方法声明的接口时,使用抽象类和接口。

2.抽象类和接口的区别
抽象类是类,接口是接口类型。抽象类收到单重继承的限制,而接口不受类的单重继承的限制。
抽象类内部可以包含实体方法,而接口不能

3.抽象类可以继承类,而接口不能

抽象类和接口的相同点:
1.抽象类和接口都可以声明对象,都只能使用子类的构造方法进行创建
2.抽象类和接口内部都可以包含抽象方法。
3.抽象类和接口都可以代表一种类型,从而可以统一子类对象的类型。

什么时候使用抽象类:
1.子类不继承其他父类
2.子类中存在完全相同的功能实现的方法
3.子类中存在相同的属性
4.设计出的结构需要继承其他类

什么时候使用接口:
1.子类已经继承了其他父类
2.子类中不存在完全相同的功能实现方法
3.子类中不存在相同的属性
4.设计出的结构不需要继承其他类

抽象类和接口的其他用途:
1.禁止创建该类的对象时,可以把该类声明为抽象类
2.当需要存在大量的常量数据,而这些常量数据将会在项目中的多个类之间使用时,可以使用接口
3.当需要统一具有某种功能的类的对象时,可以用接口
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值