最近把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之房祖名张默版的更多相关文章

  1. 转:Java中abstract和interface的区别

    转自:Java中abstract和interface的区别 abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java ...

  2. Java开发之abstract 和 interface的区别

    Java开发abstract 和 interface的区别 java开发里面经常会用到虚函数和接口,这两者的区别是什么呢? abstract: 子类里面只能继承一个父类 interface: 子类可以 ...

  3. AbStract 和Interface 方法是否能用Static修饰,为什么?

    Abstract 和Interface 方法是否能用Static修饰,为什么? interface中不能含有Static方法,属性,成员变量. Abstract中可以有Static方法,属性,成员变量 ...

  4. PHP namespace、abstract、interface、trait使用介绍

    小菜鸟一枚,一直搞不懂 namespace.abstract.interface.trait 这些关系,就抽出几天时间研究,做个总结,不足之处希望大家指正交流. namespace 命名空间 介绍:顾 ...

  5. Java标识符和关键字(static,final,abstract,interface)

    本文的主要内容如下   1.标识符合关键字 2.Java中的关键字 3.static关键 字 4.static方法 5.静态代码块 6.static修饰符综述 7.final关键字 8.final修饰 ...

  6. java中abstract和interface的區別(轉)

    (一)概述    在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制.正是由于这两种机制的存 在,才赋予了Java强大的 面向对象能力.abstract ...

  7. C# abstract class Interface的介绍

    1.基本概念介绍 抽象类: 1.抽象方法只作声明,而不包含实现,可以看成是没有实现体的虚方法 2.抽象类可以但不是必须有抽象属性和抽象方法,但是一旦有了抽象方法,就一定要把这个类声明为抽象类 3.具体 ...

  8. Java Abstract Class & Interface

    一. 抽象类 1. 抽象类:包含了一个抽象方法的类就是抽象类 2. 抽象方法:声明而未被实现的方法,用关键字abstract声明 3. 抽象类被子类继承,子类(如果不是抽象类)必须重写(overrid ...

  9. abstract与interface的区别

    abstract的用法: //通过abstract 关键字修饰的类叫抽象类. abstract class Animal { String name; String color; abstract p ...

随机推荐

  1. Sql Server系列:分区表操作

    1. 分区表简介 分区表在逻辑上是一个表,而物理上是多个表.从用户角度来看,分区表和普通表是一样的.使用分区表的主要目的是为改善大型表以及具有多个访问模式的表的可伸缩性和可管理性. 分区表是把数据按设 ...

  2. Python标准模块--Unicode

    1 模块简介 Python 3中最大的变化之一就是删除了Unicode类型.在Python 2中,有str类型和unicode类型,例如, Python 2.7.6 (default, Oct 26 ...

  3. pt-ioprofile

    pt-ioprofile是用来观察特定进程的IO信息的. 该脚本是用shell写的,有两方面的作用: pt-ioprofile does two things: ) ) is not performe ...

  4. JAVA GUI编程学习笔记目录

    2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...

  5. WebSocket - ( 一.概述 )

    说到 WebSocket,不得不提 HTML5,作为近年来Web技术领域最大的改进与变化,包含CSS3.离线与存储.多媒体.连接性( Connectivity )等一系列领域,而即将介绍的 WebSo ...

  6. HTML5实现文件断点续传

    HTML5的FILE api,有一个slice方法,可以将BLOB对象进行分割.前端通过FileList对象获取到相应的文件,按照指定的分割方式将大文件分段,然后一段一段地传给后端,后端再按顺序一段段 ...

  7. Create a Team in RHEL7

    SOLUTION VERIFIED September 13 2016 KB2620131 Environment Red Hat Enterprise Linux 7 NetworkManager ...

  8. 超详细mysql left join,right join,inner join用法分析

    下面是例子分析表A记录如下: aID        aNum 1           a20050111 2           a20050112 3           a20050113 4   ...

  9. Ubuntu手动设置DSL连接

    在安装完Ubuntu之后,发现图形界面的DSL连接不管用了,郁闷了好几天,想想移动每个月120个小时的流量岂不是白白浪费了.正当我想重返Windows系统的时候,却发现了手动设置连接DSL的好方法,感 ...

  10. jetBrain系列软件

    请尽量支持正版软件!https://www.jetbrains.com/ 本文仅供参考 以下提供一种方法可以无限期体验JetBrain2016系列软件. 1.下载JetbrainsCrack-2.5. ...