如果一个类中没有包含足够的信息来描述一个具体的对象,这样的类就是抽象类。
抽象类的作用:1.包装一组行为的抽象描述。
2.禁止某个类的实例化。
类声明前增加关键字abstract,则声明该类为抽象类。
注意:1.抽象方法的访问控制符不能是privat的。那么抽象类(父类)的引用是无法访问private的成员的。
2。抽象方法也不能是静态的。
接口是某些通用规则的集合体。接口有助于程序设计人员摆脱底层具体实现的困扰,更关注于程序的框架设计。
接口是一般行为的定义和契约。接口是高层次,它着重考虑需要的功能,而具体实现细则交给具体的接口的实现类。
接口的特征:
1.接口中的成员变量都是public、static、final类型的(都可省略),必须被显示初始化,即接口中的成员变量为静态常量。
2.接口中方法默认都是public、abstract类型的(都可省略),没有方法体,不能被实例化。
3.接口中只能包含public、static、final类型的成员变量和public、abstract类型的成员方法。
4.接口中没有构造方法,不能被实例化。
5.一个接口不能实现(implements)另一个接口,但它可以继承(extends)多个其他的接口。
6.接口必须通过类来实现它的抽象方法。
7.当类实现了某个接口时,它必须实现接口中的所有抽象方法,否则这个类必须声明为抽象的。
8.不允许创建接口的实例(实例化),但允许定义接口类型的引用变量,该引用变量指向实现了这个接口的类的对象。
9.一个类只能继承一个直接的父类,但可以实现多个接口,间接地实现了多继承。
接口和抽象类的区别:
1.抽象类可以包含某些实现代码,但接口没有任何实现部分。
2.抽象类可以包含成员变量而接口没有。
3.抽象类可以有构造方法,而接口没有。
4.抽象类可以继承自其它类和接口而接口仅仅能继承自接口。
5.接口支持多继承而抽象类仅仅支持单继承。
抽象类的作用:1.包装一组行为的抽象描述。
2.禁止某个类的实例化。
类声明前增加关键字abstract,则声明该类为抽象类。
注意:1.抽象方法的访问控制符不能是privat的。那么抽象类(父类)的引用是无法访问private的成员的。
2。抽象方法也不能是静态的。
接口是某些通用规则的集合体。接口有助于程序设计人员摆脱底层具体实现的困扰,更关注于程序的框架设计。
接口是一般行为的定义和契约。接口是高层次,它着重考虑需要的功能,而具体实现细则交给具体的接口的实现类。
接口的特征:
1.接口中的成员变量都是public、static、final类型的(都可省略),必须被显示初始化,即接口中的成员变量为静态常量。
2.接口中方法默认都是public、abstract类型的(都可省略),没有方法体,不能被实例化。
3.接口中只能包含public、static、final类型的成员变量和public、abstract类型的成员方法。
4.接口中没有构造方法,不能被实例化。
5.一个接口不能实现(implements)另一个接口,但它可以继承(extends)多个其他的接口。
6.接口必须通过类来实现它的抽象方法。
7.当类实现了某个接口时,它必须实现接口中的所有抽象方法,否则这个类必须声明为抽象的。
8.不允许创建接口的实例(实例化),但允许定义接口类型的引用变量,该引用变量指向实现了这个接口的类的对象。
9.一个类只能继承一个直接的父类,但可以实现多个接口,间接地实现了多继承。
接口和抽象类的区别:
1.抽象类可以包含某些实现代码,但接口没有任何实现部分。
2.抽象类可以包含成员变量而接口没有。
3.抽象类可以有构造方法,而接口没有。
4.抽象类可以继承自其它类和接口而接口仅仅能继承自接口。
5.接口支持多继承而抽象类仅仅支持单继承。