抽象类与普通类的区别:
普通类是一个较为完善的功能类,可以直接实例化对象,并且在普通类中可以包含有构造方法、普通方法、static方法、常量和变量等内容。而抽象类是指在普通类的结构里面增加抽象方法的组成部分。
抽象类针对的是类,接口针对的是行为即方法。抽象类必须用adstract 抽象关键字声明。抽象类不能被实例化。代码如下:
//定义一个名为Weapon的抽象类
public abstract class Weapon {
public static void attack(){//声明一个抽象方法
}
public static void move(){
}
}
抽象方法:没有方法体的方法即为抽象方法,它在形式上仅有方法的头部分,而没有方法体,甚至用于描述方法体的一对大括号也没有。切记抽象类里可以没有抽象方法,但是有抽象方法的类一定是抽象类,抽象方法只能存在于抽象类或者接口中。
一个类如果继承于抽象类,那这个类必须实现该抽象类的抽象方法。如果这个类继承了但没有实现该抽象类的抽象方法那说明该类也是一个抽象类。
接口:
接口是标准规范约束。
接口的修饰符是public,里面是未实现的常量和方法,是抽象方法的集合,接口通常以interface来声明。
通过implements实现接口
一般来说java是单继承的但是接口可以多继承。