一、抽象类:一个有abstract修饰的类就是抽象类。必须有子类,抽象类为子类提供约束,为适配器设计模式提供了前提。
特征: (1)抽象类是用abstract修饰的类;
(2)抽象类中可以有抽象方法,也可以有普通的成员变量,及成员方法;
(3)抽象类有构造方法;
(4)抽象类不能实例化;
(5)一个类继承了一个抽象类,那么必须实现抽象类中的抽象方法。
意义:1.为子类提供实现的方法及变量,解决代码复用问题;
2.为子类提供约束,解决开发规范问题,提供了大型项目开发的解决方法。
二、接口:用interface修饰的就是接口。前提:必须要有实现类
特征:1.接口中的方法,全是抽象方法,都不能有方法体;
2.一个类实现(implements)了一个接口,则这个类是这个接口的实现类。实现类必须实现这个接口中的所有方法;(因为这个接口中的所有方法都是抽象的,所以必须实现)
3.接口中的方法,默认都是被public 和 abstract修饰的,无论是否显示的声明了。因此实现了接口的实现类的实现方法,默认的访问修饰符都是public的;
4.接口中的变量,全是默认被final和static修饰的。无论是否显示的声明了,因此接口中的变量必须赋初值;
5.一个类可以实现多个接口;
6.接口可以继承多个接口
接口和抽象类的区别:
1.修饰词不同。接口用interface ,抽象类用class;
2.成员变量不同。接口中只能有final.static修饰的变量,抽象类中可以有普通的成员变量;
3.成员方方法不同。接口中的方法全是public.abstract修饰的方法,抽象类中可以有普通的成员方法;
4.构造方法不同。接口中没有构造方法,抽象类有构造方法;
5.实现的方法的权限不同。接口的实现类的方法都是public,抽象类的子类的方法修饰符只要大于等于抽象类即可;
6.一个类可以实现多个接口。而一个类只能继承一个父类;
7.抽象类依然属于类,要遵从类的继承和抽象原则。而接口打破了继承和抽象的原则,提高可扩展性。
接口和抽象类的相同点:
1. 接口和抽象类都不能实例化,需要借助实现类或子类实例化;
2.都可以有抽象方法;
3.都为实现类或子类提供了约束。
意义:1.为实现类提供约束,解决开发规范问题,提供了大型开发的解决方法;
2.接口提高了程序的扩展性
大原则:一个类继承了父类,则子类不能缩小父类的权限,只能放大或等于父类的权限
一个类实现了一个接口,这个实现类也不能缩小接口的权限,只能方法或等于接口的权限。
java抽象类与接口编程例题 java抽象类和接口的理解
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
java用idea怎么导入项目
# Eclipse 项目结构如上图 Gif 演示,在 Eclipse 下,一般中小项目的项目结构基本都是这种模式的,所以我们这里也通过网上一个开源项目 JspRun 进行讲解。下载地址:http://pan.baidu.com/s/1i3zrSf7# Eclipse 项目配置如上图箭头所示,在 IntelliJ IDEA 下是支持直接打开 Eclipse 项目的,无需导入。如上图标注 1 所示,选
java用idea怎么导入项目 asp.mvc 4项目发布文件目录结构 eclipse war tomcat eclipse 导入maven项目 eclipse 导入项目 -
S32DS配置FreeMaster
内容提要 引言 1. S32 SDK的软件分层架构介绍 1
S32DS配置FreeMaster 网络 单片机 嵌入式硬件 API