1.接口与抽象类
- 接口中所有的方法都是抽象的。而抽象类可以包含抽象和非抽象的方法。
- 类可以实现多个接口,但是只能继承一个抽象类.
- Java接口中声明的变量默认是final的。抽象类可以包含非final的变量。
- Java接口中的成员函数默认是public的。抽象类的成员函数可以是private,protected或者public
- 接口是绝对抽象的,不可以被实例化。抽象类也不可以被实例化,但是,如果包含main方法的话是可以被调用的。
2.谈谈面向对象的三大特性:封装、继承、多态
- 封装:把一个属性私有化,同时对外界提供访问该属性的方法;
- 继承:继承是使用已经存在的类作为基础建立新类的技术;
- 多态:一个引用变量到底会指向哪个类的实例对象,该引用变量发出的方法调用到低是个类中的实现方法,必须由程序运行期间才能决定。
3.重载和重写的区别
方法的重载和重写都是实现多态的方式,方法重载实现的是编译时的多态性,方法重写实现的是运行时的多态性。
方法重载就是在类中 可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的意义,返回值类型可以相同也可以不同。调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法,这就是多态性。
重载