全部博文(147)
分类:
2006-11-10 11:34:01
接口——interface;
抽象类——abstract class;
A:接口其实就是一个完全的抽象类,也就是说接口里面的全部都是抽象方法(abstract method);
B:如果一个类没有实现接口里所定义的全部方法,那么这个类就是一个抽象类,所以就必须在类声明中加上abstract;
C:在接口中声明的变量,会自动地成为类常量,所以不需要自行加上static和final的修饰符;
D:由于接口中的方法全部都是抽象方法,所以不需额外加上absstract这个关键字;
E:抽象类不能直接用new的方法实例化对象,当然借口就更不可以了
包含了抽象方法的类叫抽象类,
抽象方法,是只有方法的声明没有方法的主题。
如果一个类包含了一个或者多个抽象方法那么类的声明必须abstract
抽象类不能生成实例,所以在一个 没有抽象方法的的类中可以也声明为声明抽象类。这样做可以可以禁止哪个类的任何实例
1。抽象类与接口在设计时各有什么好处?
2。静态方法与实例方法的区别?
最基本的区别是:
接口是一种协议,一种约定,一旦发布,就不能更改,只能通过定义新接口来增加功能。而且接口内定义的成员不能在接口中实现。接口中的成员都是“抽象”的。
抽象类可以部分实现成员。而且随意增加新成员,这在一个发布的已被使用
接口中是不能的。
当然,如果你想把项目从头再来一遍,什么都可改变。可微软发布的 .Net 中的大量接口估计永远也不会改了。这就是接口。而 .Net 的新版本可以对某些类包括抽象类进行一些增强,却不会影响你原来的代码在新版本上的运行。而接口的更改将可能你导致重新编写代码。
Java中有一种专门的类来作为父类,这种类就是“抽象类”(abstract class)。抽象类有点类似“模板”的作用,其目的是要依据它的格式来修改并创建新的类。但是并不能由抽象类创建对象,只能通过抽象类派生出新的类,再由它来创建对象。
抽象类的定义语法中,method的定义可分为两种:一种是一般的method,它和普通类的方法没什么区别。另一种是"抽象方法"(abstract method)。它是以abstract关键字为开头的method,此method只声明了返回值的数据类型、method名称与所需的参数,但没有定义处理的方式。
接口(interface)是Java所提供的另一种重要功能,它的结构和抽象类非常相似。接口本身也具有数据成员与抽象方法,但它与抽象类有下列两点不同:
1、接口的数据成员必须初始化。
2、接口里的method必须全部都声明成abstract,也就是说,接口不能像抽象类一样保有一般的method,而必须全部是"抽象方法"。