抽象类和接口

来源:互联网 发布:同步网络平台 编辑:程序博客网 时间:2024/05/17 09:11


抽象类:
抽象类就是类本身不断向上抽取而来,在抽取的过程中,子类方法的声明相同,方法体不同,故在抽取的过程中就形成了没有方法体的方法,这个方法就叫抽象方法,该方法所在的类就叫抽象类。

抽象类只描述了事物应该具备的基本行为,具体的内容,要通过子类的重写来描述该功能的特点。

抽象类的特点:
1、没有方法体,抽象方法一定要定义在抽象类中。
2、抽象类和方法都必须用关键字abstract修饰。
3、抽象类不能被实例化,不能创建对象。
4、抽象类必须由其子类重写所有的方法后,其子类才能被实例化。

抽象类的细节问题:
1、抽象类一定是父类,因为抽象类没有足够的信息来描述一个事物,要依托子类将其具体化。


2、抽象类是否有构造函数?
有,一个类的构造函数除了要给自己的对象初始化之外,还要给子类的对象初始化。(子类的构造函数会默认继承父类的无参的构造函数)


3、抽象类可以不定义抽象方法,存在的目的就是为了让这个类不能实例化,

没有对象。
4、抽象类中的关键字abstract不能和那些关键字共存?
 1、final  由final修饰的类不能被继承。
 2、static   由static修饰的方法可以直接用类来调用,而抽象方法

用类调用没有任何的意义。
 3.private  用private修饰的方法只能在本类中调用,而抽象方法需

要被子类调用才有意义。

5、抽象类和一般类的异同:
 相同点:

1、都是类,都是用来描述事物的,都可以定义属性、行为和构造函数。
 不同点:
 1、一般类不能定义抽象方法。
 2、抽象类不能被实例化。
 3、抽象类中的抽象方法不能有方法体。
 4、抽象类必须是父类,一定要被继承,其子类必须要重写其所有的方法,其子类才能被实例化。


接口(interface):
当抽象类中的方法都是抽象的,这时就可以把抽象类定义为接口,可以把接口理解为一种特殊的抽象类。也就是说接口中所有的方法都是抽象方法。

接口中的成员:
1、常量   int x=1;生成默认的修饰符:final static public
2、抽象方法   生成默认修饰符 public abstract

接口的特点:
1、接口用interface来定义。
2、接口当中的成员都有固定的修饰符。
3、接口不能被实例化,不能创建对象。
4、接口需要由其子类重写了所有抽象方法之后,其子类才可以实例化。
5、接口中的成员都是用public来修饰的。

接口与类之间是实现关系(implements)。

接口的好处:多实现。
1、接口的出现降低了耦合性。
2、提高了拓展性。
3、对外暴漏的规则。

接口和接口之间是继承关系,可以实现多继承。
类与类之间是单继承。


接口和抽象类之间的区别:
1、抽象类是用于继承的,只能单继承。接口是用于实现的,可以多是实现。
2、抽象类当中可以提供非抽象的内容。
接口中只能定义抽象方法。
3、抽象类之间存在着继承关系   is a关系。
接口之间存在着实现关系   like a关系。
相同点:
都是事物不断向上抽取得到的。

4 0