1、抽象类必须被继承,抽象方法必须被重写(如果不被继承以及抽象方法不被重写,那么类里面的一些功能就无法对外界实现)。抽象方法只需声明而不需要实现(也就是说声明一个抽象方法的时候不需要加大括号,无主体),具体的功能可以在子类的重写方法中进行实现(也就是说通过子类对抽象类中,所有的抽象方法的重写来实现抽象类中的功能)。
2、抽象类不能被new实例化(实例化没意义,因为抽象类里面的抽象方法没有方法体,没有具体的方法实现,即使调用了也没有意义),通过多态进行向上转型实例化它的子类。
3、如果类中包含抽象方法,那么类必须定义为抽象类,不论是否还包含其它一般方法抽象方法即使有返回类型也不需要用return
4、抽象类与普通类的区别:当设计一个新的抽象类时,那么这个抽象类一定是用来继承的;而普通类不是用来继承的。
***抽象的好处:强迫子类去做某些事(子类必须把抽象类中的所有抽象方法都重写)。
***不能和抽象类共用的关键字:private、final、static。
5、接口(interface):是抽象方法和常量值的定义的集合(本质上讲接口就是一个抽象类(是一个方法都是抽象的抽象类))
6、在接口里面定义一个方法就是抽象方法
7、接口中存放的内容就两个:抽象方法和变量,接口中的成员都是公用的(public)。
8、只要是接口(interface),它里面的成员都有固定的修饰符。public static final用来修饰变量的。public abstract 用来修饰抽象方法。如果你不加上话,系统会自动给加上。
9、接口的特点及应用:
A接口是对外暴露的一种规则
B是程序对外的一个功能扩展
C接口的出现降低了程序的耦合性(事物的紧密联系程度)
D接口的出现可以实现多继承(接口叫多实现)
***抽象类与接口的区别***:
a定义:抽象类是至少包含一个抽象方法的类,而接口是抽象方法和全局常量的集合。
b组成:抽象类中可以有构造方法、抽象方法、普通方法、常量、变量。接口是由常量和抽象方法组成。
c使用:子类继承抽象类(extends),子类实现接口(implements)
d关系:抽象类可以实现多个接口,接口不能继承抽象类,但允许继承多个接口(因为接口里面的方法没有主体)
e对象:都通过对象的多态产生实例化对象
f局限:抽象类有单继承的局限,接口没有此局限
g选择:如果抽象类和接口都可以使用的话,可以优先使用接口,这样可以避免单继承的局限
h特殊:一个抽象类中可以包含多个接口,一个接口也可以包含多个抽象类(当然这个抽象类必须是只含有抽象方法和常量)
2、抽象类不能被new实例化(实例化没意义,因为抽象类里面的抽象方法没有方法体,没有具体的方法实现,即使调用了也没有意义),通过多态进行向上转型实例化它的子类。
3、如果类中包含抽象方法,那么类必须定义为抽象类,不论是否还包含其它一般方法抽象方法即使有返回类型也不需要用return
4、抽象类与普通类的区别:当设计一个新的抽象类时,那么这个抽象类一定是用来继承的;而普通类不是用来继承的。
***抽象的好处:强迫子类去做某些事(子类必须把抽象类中的所有抽象方法都重写)。
***不能和抽象类共用的关键字:private、final、static。
5、接口(interface):是抽象方法和常量值的定义的集合(本质上讲接口就是一个抽象类(是一个方法都是抽象的抽象类))
6、在接口里面定义一个方法就是抽象方法
7、接口中存放的内容就两个:抽象方法和变量,接口中的成员都是公用的(public)。
8、只要是接口(interface),它里面的成员都有固定的修饰符。public static final用来修饰变量的。public abstract 用来修饰抽象方法。如果你不加上话,系统会自动给加上。
9、接口的特点及应用:
A接口是对外暴露的一种规则
B是程序对外的一个功能扩展
C接口的出现降低了程序的耦合性(事物的紧密联系程度)
D接口的出现可以实现多继承(接口叫多实现)
***抽象类与接口的区别***:
a定义:抽象类是至少包含一个抽象方法的类,而接口是抽象方法和全局常量的集合。
b组成:抽象类中可以有构造方法、抽象方法、普通方法、常量、变量。接口是由常量和抽象方法组成。
c使用:子类继承抽象类(extends),子类实现接口(implements)
d关系:抽象类可以实现多个接口,接口不能继承抽象类,但允许继承多个接口(因为接口里面的方法没有主体)
e对象:都通过对象的多态产生实例化对象
f局限:抽象类有单继承的局限,接口没有此局限
g选择:如果抽象类和接口都可以使用的话,可以优先使用接口,这样可以避免单继承的局限
h特殊:一个抽象类中可以包含多个接口,一个接口也可以包含多个抽象类(当然这个抽象类必须是只含有抽象方法和常量)