1,抽象类中有构造函数吗?

有,用于给子类对象进行初始化。

2,抽象关键字不可以和那些关键字共存?

private 不行

static 不行

final 不行

final关键字:

1,final是一个修饰符,可以修饰类,方法,变量。

2,final修饰的类不可以被继承。

3,final修饰的方法不可以被覆盖。

4,final修饰的变量是一个常量,只能赋值一次。

为什么要用final修饰变量。其实在程序如果一个数据是固定的,

那么直接使用这个数据就可以了,但是这样阅读性差,所以它该数据起个名称。

而且这个变量名称的值不能变化,所以加上final固定。

对于接口当中常见的成员:而且这些成员都有固定的修饰符。

1,全局常量: public  static final 

2,抽象方法。public abstract 

由此得出结论,接口中的成员都是公共的权限。

//类与类之间是继承关系,类与接口直接是实现关系。 

/*

接口不可以实例化。

只能由实现了接口的子类并覆盖了接口中所有的抽象方法后,该子类才可以实例化。

否则,这个子类就是一个抽象类。

在java中不直接支持多继承,因为会出现调用的不确定性。

所以java将多继承机制进行改良,在java中变成了多实现。

一个类可以实现多个接口。 

一个类在继承另一个类的同时,还可以实现多个接口。

接口的出现避免了单继承的局限性。

抽象类和接口的异同点:

相同点:

都是不断向上抽取而来的。

不同点:

1,抽象类需要被继承,而且只能单继承。

   接口需要被实现,而且可以多实现。 

2,抽象类中可以定义抽象方法和非抽象方法,子类继承后,可以直接使用非抽象方法。

   接口中只能定义抽象方法,必须由子类去实现。 

3,抽象类的继承,是is a关系,在定义该体系的基本共性