A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 迦南 中级黑马   /  2014-8-22 20:58  /  1721 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

抽象类:
1.抽象类中可以有抽象方法,可以有普通方法,也可以有普通的成员变量
2.抽象类中可以不包含抽象方法;也可以什么都不包含
3.抽象类中可以有构造方法,虽然抽象类不能被实例化,但抽象类可以包含构造方法,用来子类给成员变量赋值
4.抽象关键字abstract不可以和哪些关键字共存?  
不能是private的,因为一个abstrace方法需要被重写,所以不能被修饰为私有
不能是final;因为一个abstract方法需要被重写,被final修饰的方法是不能被重写的,所以不能同final共存
不能是static;因为一个abstract方法没有方法体,静态方法需要对方法题执行内容分配控件,所以不能同static共存。
不能有
5.抽象类中可以没有抽象方法。抽象类中可以什么都没有

接口
当我们抽取出抽象方法后,如果全部都是抽象方法,可以将此类定义为“接口”
1.定义接口: 使用关键字interface.没有class关键字
2.接口同抽象类,都不能被实例化,是用来被继承的
3.一个类如果需要继承一个接口,使用关键字:implements (实现)
4.一个类如果实现一个接口,必须重写接口中定义的抽象方法;如果不全部实现,那么这个类就是一个抽象类;
5.接口中可以定义成员变量,和抽象方法;接口中定义的成员变量必须被声明为:public static final全局常量;上述关键字可以不写,系统会自动添加;接口中定义的成员方法必须被声明为:public abstract上述关键字可以不写,系统会自动添加

接口的作用
接口一般用于功能扩展:在接口中定义成员变量一般没有多大的作用。一般都在接口中定义若干多的抽象方法。用于其他类实现;我们可以利用这一规则,使接口作为一个“规范”

2.作为功能扩展
在java中不允许多继承,但允许同时实现多个接口,相同的方法都只是定义,没有方法体,所以不会产生冲突;
一个接口可以“继承”另一个接口,使用关键字:extends,而且可以多继承

接口和抽象类:
相同点:
1.都不能被实例化,都是用来被继承的;

不同点:
1.抽象类:抽象类中可以有实现的方法和抽象的方法
接口:接口中只能包含抽象方法,不能有实现的方法
2抽象类:抽象类使用关键字abstract  class定义
接口使用关键字 interface 定义 不包含class
3.抽象类:子类继承抽象类使用关键字:extends,只能单继承
接口:实现类实现接口使用关键字: implements,可以多实现
4.抽象类:成员变量可以是普通的成员变量:
接口:成员变量必须被修饰为:public static final
5.抽象类:抽象类中可以有构造方法
接口:没有构造方法

9 个回复

倒序浏览
顶一下,顺便当复习了。。。
回复 使用道具 举报
   加油吧!!!!!11
回复 使用道具 举报
顶一下,顺便当复习了。。。
回复 使用道具 举报
我刚看到 面向对象 还在看构造函数   你这些优点深奥了
回复 使用道具 举报
还有没有更多?
回复 使用道具 举报
加油吧!!!!!11
回复 使用道具 举报
太厉害了啊
回复 使用道具 举报
曾翀 中级黑马 2014-8-23 23:32:59
9#
学习了。。。。。。
回复 使用道具 举报
好厉害的样子
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马