类:
普通类包含变量,普通方法,构造方法等
public class A{
private String name;
public void method(){}
public A(){}
}
抽象类
用关键字abstance修饰,可以包含变量,方法,抽象方法(用abstance修饰的方法)
public abstance class A{
private String name;
public abstance void method();
public void method1(){}
}
接口定义:
可以理解为特殊的抽象类,是对行为的抽象,在接口中所有的成员变量都是常量,所有的方法都是抽象方法,没有构造方法,不过随着Java的发展,在JDK1.8之后,接口中出现了一些新特性,比如可以编写用static/default修饰的非抽象方法,default修饰的可以被覆盖重写,static修饰的可以直接类名.方法
public interface Animal{
void methos();
}
用途:
普通类一般用来封装数据,作为对象的实体类使用
抽象类一般用在继承中,实现程序的延展性,同时子类如果没有重写父类中的所有方法就会变为一个抽象 子类
接口主要是一种编程规范,是一种极度抽象的类,用途最为广泛
区别:
a.抽象类只能单继承,接口可以多实现,
b.接口中只能有抽象方法,变量默认都是常量,抽象类中可以有成员变量和成员方法(JDK1.8之后,接口被赋予了新特性)