1.什么是接口,什么是抽象类
接口: 在java中我们,用关健字interface定义接口。如下面所示:
public interface Example { }
实际上,接口定义了一系列的行为,一组方法声明或者我们称之为签名,如下面所示:
public interface Example { public void method1(); public int method2(int a, int b); public double method3(); }
从上面可以看出,接口什么都实现不了,只是作为一种规范。
每个实现接口的方法都必须实现接口中每个方法,包括个修饰符和参数。接口在实际开发中,确保相似的类实现相似的功能,作为多态运用的一部分。
注意:在接口中所定义的方法的只能是public ,而且在接口中不能定义变量,只有定义常量。
抽象类:
在java中,用关健字abstract定义抽象类,如下面所示:
public abstract class ExampbleOfAbstract { }
抽类里面可以有抽象方法,也可以有具体方法,如下面所示:
public abstract class ExampbleOfAbstract { public int add(int a, int b ){ return a + b ; } abstract void getNumber(); }
一旦类中有抽象方法,该类必须声明为抽象类。
继承抽象类的类必须重写抽象类的所有抽象方法。
2.接口与抽象类的不同点:
1.接口中没有自己的成员变量,只能是常量。抽象类里可以有自己的成员变量。
2.接口中的方法都只能是声明,而只能声明为公开的。而抽象类中的方法可以有具体方法也或以有抽象方法,而且可以可以定义访问符。
3.抽象类在java中表示一种继承关系,一个类只能用一次继承。但是,一个类,却可以实现多个接口,弥补了类我多继承问题。