本帖最后由 孙含庆 于 2012-10-5 16:45 编辑
/** 接口不可以有构造函数,因为他不能被继承。用于扩展功能用得,实现他的类必须实现他得全部方法,因为他的方法都是抽象的。
* 抽象类可以有构造函数,据说抽象类的子类就是调用抽象类的构造方法来创建自己的对象的。
* 他可以有抽象的和非抽象的方法,抽象的方法没有方法体,非抽象的方法有方法体。继承他的类,
* 必须实现他所有的抽象方法,不然这个类就也是抽象的。
* 接口和抽象的定义规则都是死的,必须这么写,JVM 才可以识别,不给你报一大堆错误,是底层规则。
*/
初期学习阶段,没有必要非去研究java 底层原理什么的,先按着规则来学习,不要去钻牛角尖,会学得很费劲。
等全部学完,会使用了,也就慢慢都懂了。
interface Demo1
{
//Demo1(){}; 接口不可以有构造方法,可以理解成是很特殊的抽象类。 他不能被继承,所以没有构造方法。
public static final int PI = 3; //接口中的定义是死的,固定修饰符,变量必须是静态常量。
public abstract void function1(); // 法必须是抽象,就是不写修饰符,java虚拟机也会给你补上}
abstract class Demo2
{
Demo2(){}; //抽象类有自己的构造函数,但是不可以new 创建对象,因为调用抽象方法无意义。
abstract void function2(); //类中有抽象的方法,类也必须是抽象的。
public String print(){ //抽象类可以有非抽象的,有实现体的方法。
return "hello java";
}
}
public class Test5 extends Demo2 implements Demo1 {
public static void main(String[] args)
{
}
public void function1(){
//接口被实现,子类必须实现接口的所有方法。 }
public void function2(){
//抽象类被继承,子类必须复写其中的所有抽象方法 }
} |