黑马程序员_第五天

原创 2012年03月27日 16:19:33

----------------------android培训java  培训、期待与您交流! ----------------------

抽象和接口,这两个含义,好容易弄混淆,不知道什么时候用谁,不过找到个例子

就懂啦,事物相同属性就用抽象,事物个别属性,就用接口,不知道这样理解对不对呢

抽象

抽象类就是不能使用new方法进行实例化的类,即没有具体实例对象的类。抽象类有点类似“模板”的作用,目的是根据其格式来创建和修改新的类。对象不能由抽象类直接创建,只可以通过抽象类派生出新的子类,再由其子类来创建对象。当一个类被声明为抽象类时,要在这个类前面加上修饰符abstract

    在抽象类中的成员方法可以包括一般方法和抽象方法。抽象方法就是以abstract修饰的方法,这种方法只声明返回的数据类型、方法名称和所需的参数,没有方法体,也就是说抽象方法只需要声明而不需要实现。当一个方法为抽象方法时,意味着这个方法必须被子类的方法所重写,否则其子类的该方法仍然是abstract的,而这个子类也必须是抽象的,即声明为abstract

    抽象类中不一定包含抽象方法,但是包含抽象方法的类一定要被声明为抽象类。抽象类本身不具备实际的功能,只能用于派生其子类。抽象类中可以包含构造方法,但是构造方法不能被声明为抽象。

抽象类不能用final来修饰,即一个类不能既是最终类又是抽象类。

abstract不能与privatestaticfinalnative并列修饰同一个方法。

接口

接口中的成员修饰符是固定的。

•成员常量:public static final

•成员函数:public abstract

接口,用于多重继承,也不能实例化。只能包含static final的成员变量,不过在interface中一般不定义成员变量。而成员方法在接口里只能是抽象方法,访问权限只能是public

 

例子:

不同的门都具有本质特征动作open() close()。那么抽象类和接口都可以定义这两个方法。现在要求它具有报警alarm功能。

 1) 如果这3个功能都放在抽象类里面,那么所有的门都具备了这3个功能,无疑不妥,有的门不需要报警功能!

 2) 如果这3个功能都放到接口里面,需要用到报警功能的其他类,就需要实现门的openclose功能,这样子也不对

所以,应该把门的open,closealarm分离,让所有的门都有open, close动作,继承抽象类Door。而需要添加报警功能的门,则再继承接口Alarm

abstract class Door

{

abstract void open(); //打开

abstract voidclose();//关闭

}

interface Alarm {

 void alarm();//报警

}

class AlarmDoor extends Door implementsAlarm //继承门实现报警

{

void open() { … }

void close() { … }

void alarm() { … }

}

抽象类就是类的本质特征,共同的;接口是个性化的,你想让类更具个性化,则继承其他相应个性特征的接口

 

----------------------android培训java  培训、期待与您交流! ----------------------

详细请查看:http://edu.csdn.net/heima

 

黑马程序员_第五天 面向对象(二)_继承、多态、内部类

继承:    继承特点:   1、提高了代码的复用性。   2、让类与类之间产生了关系。有了这个关系,才有了多态的特性。     Java语言中:java只支持单继承,不支持...

黑马程序员——第五天(Java面向对象基础)

---------------------- android培训、java培训、期待与您交流! ---------------------- 一.面向对象(概述) 面向对象其实是一种思想  它是思...

黑马程序员-------学习日记Java基础 第五天

---------------------- android培训、java培训、期待与您交流!---------------------- 面向对象 3.1.1理解面向对象  面向对象是相对...

黑马程序员----break,continue,函数(方法,第五天学习笔记

1.      第五天学习内容,循环中两个关键字break,continue.函数(方法),意义,定义,返回值,参数,方法的重载overload   2.      break关键字   结束当...

【黑马程序员】面向对象(一) 第五天

-------  android培训、java培训、java学习型技术博客、期待与您交流! ---------- 知识点 面向对象是一种对现实世界理解和抽象的方法。 通过面向对象的方式,...

黑马程序员--Java基础学习(面向对象)第五天

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- Java基础学习(面向对象)第五天 一,概述 面向对象的概念: 1,面向对象是相对面向过...

黑马程序员--IOS基础第五天(C语言)

 循环结构:简单来说就是,循环是一次又一此的执行相同的代码块。 循环结构:goto语句和if语句,while语句,do-while语句,for语句。 构成循环...

黑马程序员java学习第五天,面向对象

--------------------- android培训、java培训、期待与您交流! ---------------------- 3 面向对象 3.1 面向对象概念 3.2 类...

黑马程序员-------.NET知识基础(第五天)

------- Windows Phone 7手机开发、.Net培训、期待与您交流! ------- 密封类 1、sealed 标记一个密封类,不能被子类继承 2、禁止子类重写父类的方法 特...

黑马程序员_第五天_高新技术之反射及其应用

---------------------- android培训、java培训、期待与您交流! ----------------------         反射是我以前从来没接触过的新知识,在...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:黑马程序员_第五天
举报原因:
原因补充:

(最多只允许输入30个字)