abstract与interface之房祖名张默版
最近把java基础知识拿出来看看,看到abstract与interface的时候,觉得有点模糊,好像面试官也喜欢问这个问题。我在百度了查了好长时间,觉得讲算比较清楚的是那篇讲 Door,然后想要带个报警的AlarmDoor,地址http://www.cnblogs.com/gxinliug/archive/2011/04/27/2031246.html,其他地方也能找到这边篇文章,不知道是博主复制别人还是别人复制博主的。看了之后我还不是非常理解,我于是我就在stackoverflow上找了相关的帖子,其中感觉http://stackoverflow.com/questions/761194/interface-vs-abstract-class-general-oo 这个帖子里面的人回答得比较经典。
- Pilot: abstract class
- C-141 Pilot: concrete class
- ISafety Officer: interface
我然后仔细想想, 这个abstract类,比如有个抽象的人类,有头发、眼睛、嘴巴等等这些属性,有吃饭、喝水、说话这些方法,然后一个人任何的子类都具有这些属性和方法,至于吃什么,喝什么和说什么就在于子类具体实现了。好了,现在某个人比如房祖名吧,有吸毒的技能(这里技能就当方法吧),成龙大哥是他的老子,但是他没有吸毒这个嗜好啊。成龙的儿子就长得像成龙,有说话,吃饭的技能,房祖名吸毒的这个技能估计是从张默那个接口实现的,哥俩好啊。他说:吸毒我爸没教我(不是你爸没有教你,所有的爸爸都没有教),就跟你学吧。想泡妞,但是成龙大哥又没有泡妞技能传授给他,怎么办?然后又实现了柯震东泡吧泡妞的接口,于是泡了很多美女。 有天晚上:房祖名沉思了下来回顾了从小大的历程:靠,我爸虽然是成龙,他就生了我,给我吃给我喝,其他啥技能都没教我,我吸毒泡妞还是跟张默和柯震东学的。
综上所说,成龙相当于一个抽象类吧,房祖名是一个子类,张默和柯震东就是两个接口吧。他以后想去澳门赌博,得实现周润发的接口啊。如果让成龙教他赌博,岂不是打断他的狗腿,这显然不现实啊。 所以房祖名就一个成龙父类,可以有像张默和柯震东的很多这样好基友的接口。
以上纯属鄙人愚见,请各位斧正!
代码就简单写下:
public abstract class Chenglong {
public void eat() {
}
public void talk() {
}
}
public interface Zhangmo {
public void xidu();
}
public interface Kezhendong {
public void paoniu();
}
public class Fangzuming extends Chenglong implements Zhangmo, Kezhendong {
@Override
public void eat(){
}
@Override
public void talk(){
}
@Override
public void paoniu() {
// TODO Auto-generated method stub
}
@Override
public void xidu() {
}
}
abstract与interface之房祖名张默版的更多相关文章
- 转:Java中abstract和interface的区别
转自:Java中abstract和interface的区别 abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java ...
- Java开发之abstract 和 interface的区别
Java开发abstract 和 interface的区别 java开发里面经常会用到虚函数和接口,这两者的区别是什么呢? abstract: 子类里面只能继承一个父类 interface: 子类可以 ...
- AbStract 和Interface 方法是否能用Static修饰,为什么?
Abstract 和Interface 方法是否能用Static修饰,为什么? interface中不能含有Static方法,属性,成员变量. Abstract中可以有Static方法,属性,成员变量 ...
- PHP namespace、abstract、interface、trait使用介绍
小菜鸟一枚,一直搞不懂 namespace.abstract.interface.trait 这些关系,就抽出几天时间研究,做个总结,不足之处希望大家指正交流. namespace 命名空间 介绍:顾 ...
- Java标识符和关键字(static,final,abstract,interface)
本文的主要内容如下 1.标识符合关键字 2.Java中的关键字 3.static关键 字 4.static方法 5.静态代码块 6.static修饰符综述 7.final关键字 8.final修饰 ...
- java中abstract和interface的區別(轉)
(一)概述 在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制.正是由于这两种机制的存 在,才赋予了Java强大的 面向对象能力.abstract ...
- C# abstract class Interface的介绍
1.基本概念介绍 抽象类: 1.抽象方法只作声明,而不包含实现,可以看成是没有实现体的虚方法 2.抽象类可以但不是必须有抽象属性和抽象方法,但是一旦有了抽象方法,就一定要把这个类声明为抽象类 3.具体 ...
- Java Abstract Class & Interface
一. 抽象类 1. 抽象类:包含了一个抽象方法的类就是抽象类 2. 抽象方法:声明而未被实现的方法,用关键字abstract声明 3. 抽象类被子类继承,子类(如果不是抽象类)必须重写(overrid ...
- abstract与interface的区别
abstract的用法: //通过abstract 关键字修饰的类叫抽象类. abstract class Animal { String name; String color; abstract p ...
随机推荐
- redux-amrc:用更少的代码发起异步 action
很多人说 Redux 代码多,开发效率低.其实 Redux 是可以灵活使用以及拓展的,经过充分定制的 Redux 其实写不了几行代码.今天先介绍一个很好用的 Redux 拓展-- redux-amrc ...
- IE6/7下空div占用空间的问题
最近注意力没在前端上面,工作碰到这样一个问题,下意识的写了句 font-size:0;line-height:0;哪知道引发了更大的bug.后来插入数据进去的时候都不显示了..再后来百度一番找到,原来 ...
- 基于DDD的现代ASP.NET开发框架--ABP系列文章总目录
ABP相关岗位招聘:给热爱.NET新技术和ABP框架的朋友带来一个高薪的工作机会 ABP交流会录像视频:ABP架构设计交流群-7月18日上海线下交流会的内容分享(有高清录像视频的链接) 代码自动生成: ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(55)-Web打印
系列目录 前言 1.本次主要弥补工作流,用户表单数据的打印 2.使用JQprint做为web打印插件 3.兼容:FireFox,Chrome,IE. 4.没有依赖也没有配置,使用简单 代码下载:htt ...
- ASP.NET Core的路由[2]:路由系统的核心对象——Router
ASP.NET Core应用中的路由机制实现在RouterMiddleware中间件中,它的目的在于通过路由解析为请求找到一个匹配的处理器,同时将请求携带的数据以路由参数的形式解析出来供后续请求处理流 ...
- ASP.NET Core 1.0 使用 Dapper 操作 MySql(包含事务)
操作 MySql 数据库使用MySql.Data程序包(MySql 开发,其他第三方可能会有些问题). project.json 代码: { "version": "1. ...
- 源码分析netty服务器创建过程vs java nio服务器创建
1.Java NIO服务端创建 首先,我们通过一个时序图来看下如何创建一个NIO服务端并启动监听,接收多个客户端的连接,进行消息的异步读写. 示例代码(参考文献[2]): import java.io ...
- 设计模式之创建类模式大PK
创建类模式大PK 创建类模式包括工厂方法模式.建造者模式.抽象工厂模式.单例模式和原型模式,他们能够提供对象的创建和管理职责.其 ...
- Lind.DDD.Aspects通过Plugins实现方法的动态拦截~Lind里的AOP
回到目录 .Net MVC之所以发展的如些之好,一个很重要原因就是它公开了一组AOP的过滤器,即使用这些过滤器可以方便的拦截controller里的action,并注入我们自己的代码逻辑,向全局的异常 ...
- iOS之判断手机号码、邮箱格式是否正确
//判断手机号码格式是否正确 + (BOOL)valiMobile:(NSString *)mobile{ mobile = [mobile stringByReplacingOccurren ...