java接口和抽象类
来源:互联网 发布:c语言杨辉三角七行七 编辑:程序博客网 时间:2024/06/03 12:19
1、抽象类最大的特征就是在普通类的基础上追加了抽象方法,而事实上抽象类定义里面也存在有若干的问题
。将抽象方法和普通方法写在一起有些乱
。抽象类本身会存在单继承的局限
2、抽象类和接口最大的区别在于:抽象子类只允许继承一个抽象类,而接口的子类可以同时实现多个接口,避免了单继承的局限。接口本质上来讲属于一个特殊的类,接口的组成只有2种结构:全局常量、抽象方法,而接口的定义要使用 interface关键字。
3、可是接口和抽象类一样,由于里面都存在抽象方法,所以肯定无法直接使用关键字new实例化,所以接口使用原则:
。接口一定要有子类,子类要使用implements可以实现多个父接口
。接口的子类一定要覆写接口中的全部抽象方法
。接口的对象实例化可以依靠子类对象的向上转型完成,于是不同的子类对于同一个抽象方法会有不同的实现
//使用接口interface IMessage { // 使用I代表这是一个接口 public static final String INFO = "test" ; public abstract void print() ; } class MessageImpl implements IMessage { public void print() { System.out.println("Hello World !") ; System.out.println(INFO) ; } } public class TestDemo { public static void main(String args[]) { IMessage msg = new MessageImpl() ; msg.print() ; } }
4、既然接口中全部都是有抽象方法和全局常量所组成,所以以下两种定义效果一样:
interface IMessage { public static final String INFO = "test" ; public abstract void print() ; } interface IMessage { String INFO = "test" ; public void print() ;
5、接口中的全部的访问权限都是public
ps:
。说到了接口和抽象类,那么就必须注意:一个抽象类可以同时实现多个接口,但是反过来,一个接口不允许继抽象类。
。虽然一个接口无法去继承一个抽象类,但是,一个接口缺可以使用extends继承多个父接口
。在实际开发中接口有三大核心意义:定义不同层间的操作标准、表示一种能力、将远程方法视图暴露给客户端。
6、接口和抽象类的的区别(面试经常问的):
。关键字不同:抽象类(abstract class) 接口(interface)
。 组成不用:抽象类(属性,常量,构造,普通方法,抽象方法) 接口(全局常量,抽象方法)
。 权限不同:抽象类(可以使用各种权限) 接口(只能是public)
。子类实现:抽象类(extends) 接口(interface)
。关系:抽象类(可以实现多个接口) 接口(接口不允许继承抽象类,但是可以继承多个父接口)
。使用:都需要定义有子类,子类一定要覆写所有抽象方法,并且依靠子类对象像上转型实现抽象类或者接口的对象实例化操作
。限制:抽象类(一个子类只能继承一个抽象类) 接口(一个子类可以实现多个接口)
。抽象类里可以没有抽象方法
。如果一个类里有抽象方法,那么这个类只能是抽象类
当你关注一个事物的本质的时候,用抽象类;当你关注一个操作的时候,用接口。
- Java 抽象类,抽象方法和接口
- Java抽象类和抽象方法、接口
- Java接口和抽象类
- java接口和抽象类
- java 接口和抽象类
- java接口和抽象类
- JAVA抽象类和接口
- java抽象类和接口
- java抽象类和接口
- Java:抽象类和接口
- java接口和抽象类
- Java 抽象类和接口
- JAVA抽象类和接口
- java抽象类和接口
- java接口和抽象类
- JAVA抽象类和接口
- Java抽象类和接口
- java 抽象类和接口
- 欢迎使用CSDN-markdown编辑器
- LeetCode6—ZigZag Conversion
- postgreSQL存储过程写法示例
- location对象改变浏览器位置
- python: range、xrange 探究
- java接口和抽象类
- git项目管理
- spring boot 读取本地静态资源
- C++11智能指针
- angular获取dom所在的scope
- Android入门项目(二):手机防盗器的开发(1)
- CENTOS7 键盘按键映射错误
- 用StrictMode来检测SQLite的泄漏leaked优秀排错方法
- SpringBoot学习笔记