1.接口与抽象类之间的区别
-
1.抽象类中可以写非抽象类的方法,从而避免在子类中重复书写他们,提高代码的复用效率。 接口中只能有抽象的方法。
-
2.一个类只能继承一个直接父类,这个父类可以是具体的类也可以是抽象的类,但一个类可以实现多个接口。(接口是对动作的抽象,而抽象是对本源的抽象——举个例子,男人,女人这两个类可以抽象成更高级的抽象类-人,但一个生物不可能既是人又不是人,所以一个类只能继承一个抽象类)
-
3.接口里只能对方法进行声明,抽象类既可以对方法进行声明,也可以进行实现。
-
4.抽象类中的成员变量是多种多样的,而接口中的成员变量只能是 public static final 类型的
-
5.接口中不能含有静态代码块以及静态方法(用static修饰的方法),而抽象类可以有静态代码块和静态方法。
2.简述面向对象语言的3个基本属性及其作用
- 封装、继承、多态
**封装:**把事物抽象成一个类,将事物拥有的属性和动作隐藏起来,只保留特定的方法与外界联系。 封装符合面向对象设计的 单一性原则 一个类把自己要做的事情封装起来,而不是暴露给其他类处理,当内部逻辑发生变换时,外部调用不用因此修改,他们只调用外部的接口,而不用关心内部的实现。
继承:
Java的类可以分为三类:
类:使用class定义,没有抽象方法
抽象类:使用abstract