abstract(抽象):
1.abstract可以修饰类和成员方法
2.被抽象修饰的类,叫做抽象类,抽象类不能实例化(即不能new),但是有构造方法,
也可以被其他类继承。
3.被抽象修饰的成员方法,叫做抽象方法,抽象方法后面不能接{ },抽象方法也不能被直接访问和调用,(如super,this关键字也无法使用),即使定义一个公共类public方法,在public方法内调用abstract方法,虽然语法不报错,但是运行报错,程序无法执行抽象类。所以抽象方法只能被重写实例化才能正常使用。
4.子类继承抽象类父类,如果子类是实例类,则需要重写抽象类里面的所有抽象方法,才能正常继承(程序才不会报错),如果子类也是抽象类,可以重写抽象方法也可以不写。抽象类里面可以写抽象方法,也可以写具体方法,不一定必须写抽象方法。但是实现类里面不能写抽象方法!
5.不能与abstract共存的关键字:private,final,static
private 是私有的,定义的成员方法不能被继承,自然就不能被重写,而用abstract是要被重写的。
final 定义的成员方法无法被重写,所以也会与abstract产生冲突
static修饰的方法为静态方法,静态方法不能被继承和重写,所以会冲突,变得没有意义
Interface(接口):
java提供了一个关键字:interface,用来定义一个接口
接口的主要作用是用来描述类的额外功能的。
定义一个接口的语句定义格式:
interface 接口名{
}
一、使用接口的注意事项:
1、接口中只能出现抽象方法,不能写具体的方法
2、一个具体的类实现接口的话,需要使用关键字:implements
3、若一个具体的类实现接口的时候,必须要实现接口中所有的抽象方法
4、一个具体的类可以同时实现多个接口,但是必须要所有的抽象方法
5、抽象也可以实现一个或多个接口
二、 接口与接口之间是继承关系:
一个接口可以继承若干个接口,可以多继承。
面试题:java中允许多继承吗?
1、类与类之间只允许单继承,不允许多继承,但是可以多层继承,形成继承体系
2、接口与接口允许多继承
三、
接口中成员的特点:
成员变量:
接口中的变量默认都是被添加了修饰符:public static final
换句话说,接口中只允许出现常量
构造方法:
接口中没有构造方法,自己写都不行,接口不能实例化
成员方法:
接口只能是抽象方法,默认会在方法前加上修饰符:public abstract