黑马程序员_第五天

原创 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

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Java抽象类和接口的学习

抽象类 abstract class     包含抽象方法的类,叫抽象类。而抽象的概念就是抽象出共同属性:成员变量和方法。所以抽象类可以有private等多种权限的成员变量和非abstract的...

抽象类和接口的区别

关于抽象类和接口的区别.首先我们要知道什么是抽象类?什么是接口? 抽象类:包含抽象方法的类.如果一个类含有抽象方法,则称这个类为抽象类,抽象类必须在类前用abstract关键字修饰。 那么...

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

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

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

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

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

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

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

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

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

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

黑马程序员_Java学习日记第五天--集合

-------android培训、java培训、期待与您交流! ---------- List:特有方法。凡是可以操作角标的方法都是该体系特有的方法。 增 add(index,element);...

黑马程序员——java基础学习笔记——第五天

一.面向对象。 面向对象是相对面向过程而言,面向对象和面向过程都是一种思想。面向过程:强调的是功能行为。面向对象:将功能封装进对象,强调具备了功能的对象。面向对象是基于面向过程的。 开发的过程:其实...

黑马程序员_第五天总结

------- android培训、java培训、期待与您交流! ---------- 继承: 继承的概述 继承的特点 super关键字 函数覆盖 子类的实例化过程 final关键字 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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