虚方法virtual、抽象方法abstract、接口interface区别
2016-06-30 22:26
453 查看
接口、抽象类、抽象方法、虚方法:
这四个名词时非常容易混淆的:
首先说一下接口 与抽象类 的异同:
相同点:
1.他们都不能实例化自己,也就是说都是用来被继承的。
2.抽象类中的抽象方法和接口方法一样,都不能有方法体
不同点:
1.抽象类里可以有字段,接口中不能有字段.
2.抽象类中的普通方法可以有方法体,而接口方法没有方法体。
3.接口中的方法不能有访问修饰符,抽象类中的抽象方法被继承,需要override重写 .
4.接口更像是一种规范,一种约束。
5.一个子类只能继承一个抽象类,但却可以继承多个接口。
接下来是抽象方法 和虚方法 的异同:
其实可以把抽象方法看做是没有方法体的虚方法。
相同点:
1.抽象方法和虚方法都可以被重写。
不同点:
1.abstract 和virtual的关键字不同
2.抽象方法一定没有方法体,而虚方法可以有方法体。
3.抽象方法一定需要override重写,虚方法可以不重写。
这四个名词时非常容易混淆的:
首先说一下接口 与抽象类 的异同:
相同点:
1.他们都不能实例化自己,也就是说都是用来被继承的。
2.抽象类中的抽象方法和接口方法一样,都不能有方法体
不同点:
1.抽象类里可以有字段,接口中不能有字段.
2.抽象类中的普通方法可以有方法体,而接口方法没有方法体。
3.接口中的方法不能有访问修饰符,抽象类中的抽象方法被继承,需要override重写 .
4.接口更像是一种规范,一种约束。
5.一个子类只能继承一个抽象类,但却可以继承多个接口。
接下来是抽象方法 和虚方法 的异同:
其实可以把抽象方法看做是没有方法体的虚方法。
相同点:
1.抽象方法和虚方法都可以被重写。
不同点:
1.abstract 和virtual的关键字不同
2.抽象方法一定没有方法体,而虚方法可以有方法体。
3.抽象方法一定需要override重写,虚方法可以不重写。
相关文章推荐
- JavaScript的垃圾收集
- 10.Java 集合 - WeakHashMap
- 程序员技术练级攻略
- 每天一个linux命令(27)--tar命令
- Welcome to my blog
- Multiple markers at this line - Plugin execution not covered by lifecycle configuration:
- 313. Super Ugly Number
- 数据库中的左连接(left join)和右连接(right join)区别
- JPA关系映射之one-to-many和many-to-one
- Spring常用注解
- 图解Linux命令之--uname命令
- 贝叶斯其人其事
- java常量
- HTTP Session原理
- 自己动手写HTTP框架:ThreadPool+Runnable+handler篇
- http://www.tuicool.com/articles/B3qeUrB
- WPF ListView DoubleClick
- Spring +Mybatis 拦截器配置
- List<T>集合导出csv方法参考,通过增加自定义的属性控制输出的字段。
- Android AES加密工具类实现(基础回顾)