黑马程序员技术交流社区
标题:
关于抽象跟接口的一些笔记吧,希望高人能指点下我
[打印本页]
作者:
爱java爱生活
时间:
2015-6-3 21:39
标题:
关于抽象跟接口的一些笔记吧,希望高人能指点下我
抽象类也是类只是含有抽象的方法(但是抽象类不一定含有抽象方法,有抽象方法的类一定要被abstract修饰);
继承抽象类,重写抽象类中的方法,来实现自己的功能;
接口是全部成员全部是抽象的特殊类;(接口也是类)
用implements来实现接口;用重写(覆盖)来实现接口中的抽象方法;interfac A
但是一个抽象类实现接口的时候不用实现接口中的全部抽象方法;
接口的特点:
1接口不能实例对象(即不能使用new关键字),因为接口中的方法都是抽象的没有方法体;
2接口中的成员方法都是抽象的默认为public abstract;接口中的成变量都是全局变量:默认修饰符为public
static final
3当一个类不是抽象类的时候,实现接口的时候,必须得实现接口中的全部抽象方法(也就是重写接口中的全部方法。);
4但是一个抽象类实现接口的时候不用实现接口中的全部抽象方法;
5 一个类通过implements实现接口的时候可以实现多个接口,之间用逗号隔开;如: abstract class A implements B,C
一个接口可以extends多个接口如;interface A extends B,C(又涉及到继承体系的问题了)
当一个类extends其他的类的时候,也可以实现接口
只有抽象才需要重写;一般类不要重写;
java中不直接支持多继承,但是java支持实现多个接口;
abstract class Employee
{
private double pay;
private String name;
private String id;
Employee(double pay,String name,String id)
{
this.pay=pay;
this.name=name;
this.id=id;
}
abstract public void work() ;
}
class Program extends Employee
{
public Program(double pay, String name, String id)
{
super(pay,name,id);
// TODO 自动生成的构造函数存根
}
public void work()
{
System.out.println("code");
}
}
class Manager extends Employee
{
Manager(double pay,String name,String id)
{
super(pay,name,id);
}
public void work()
{
System.out.println("work 项目");
}
}
作者:
TOBESKY
时间:
2015-6-3 21:59
赞一个。。。。
作者:
爱java爱生活
时间:
2015-6-3 22:02
希望能有高人指点一下吧
作者:
熊乾坤
时间:
2015-6-3 22:04
比我总结的好多了。。。赞一个
作者:
城北一直晴。
时间:
2015-6-3 22:14
你总结的挺好,但是要记住的话还得要有自己的方法把它提炼出来,自己好记忆。
作者:
爱java爱生活
时间:
2015-6-3 22:28
嗯,我觉得我缺的就是你说的那个
作者:
爱java爱生活
时间:
2015-6-3 22:29
嗯,我觉得我缺的就是你说的那个
作者:
LoveMyself
时间:
2015-6-3 22:50
慢慢来,会达到那样的
作者:
爱java爱生活
时间:
2015-6-3 23:54
嗯,我觉得你说的很有道理啊 ,从今天开始就要按你说的那种方法去改进。
作者:
卡布
时间:
2015-6-4 00:36
继续加油啊
作者:
爱java爱生活
时间:
2015-6-7 01:24
嗯谢谢指点,欧文已经在按你的说法来了,是真的记得跟牢了,有点时候跟毕老师当时说的记住了,但是不是记得劳。
作者:
遗失丨美好
时间:
2015-6-7 01:28
感觉你们基础不好好!作为小白虽然看不懂,还是支持下
作者:
MissMr.
时间:
2015-6-7 01:30
同求,没什么头绪
作者:
君子无醉
时间:
2015-6-7 03:23
第一句话有语病吧。。和括号里说的矛盾,不过括号中是正确的。抽象类继承抽象类,不一定全部重写里面的抽象方法。还有,接口严格意义上不能算是类,只是一种特殊的抽象类。。总结的很好,多练下就能熟练掌握了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2