最近的生活被笔试面试充斥着 。。。。。。生无可恋。。。。。。。好多基础知识看了忘,忘了看。。。。。。。 那就写一下。。。。。
1.重写 重载的区别:
(1)、重写是子类对父类的重写。重写的参数列表,方法名、返回值必须与被重写的方法一致。
被重写的方法不能是private,否则只是在子类中重新定义一个方法。
(2)、重载是一个类中多态性的一种体现,多个同名函数同时存在,就是类有一个统一的方法处理不同的数据类型的一种方式。
重载 函数名相同,参数形式不同(包括参数类型,参数个数,不同的参数顺序)。
不能通过访问权限、返回类型进行重载。
2. 说到了重写和重载那就说一下多态吧
多态是允许不同对象类型对同一消息做出的响应,即对于同一消息不同的对象会有不同的回应。
多态的必要条件:
(1)、要有继承
(2)、要有重写
(3)、父类应用指向子类对象
父类类型的引用可以调用父类中定义的所有属性和方法,而对于子类中定义而父类中没有的方法,它是无可奈何的;
同时,父类中的一个方法只有在父类中定义而在子类中没有重写的情况下,才可以被父类类型的引用调用;
对于父类中定义的方法,如果子类中重写了该方法,那么父类类型的引用将会调用子类中的这个方法,这就是动态连接。也可以叫做动态绑定。
可以基于继承实现多态,也可以通过实现接口实现多态。
3.继承与接口的区别
java 只支持单继承,不支持多继承。
为了弥补不支持多继承,有了接口。接口中对所有的函数只是做了申明,没有实现,同时实现该接口的类必须要实现该接口的所有方法,必须要实现该接口的所有方法。java 支持实现多个接口。
区别 | 接口 | 抽象类 |
默认方法实现 | 没有实现的方法 | 可以有默认实现的方法 |
子类的实现 | 需要实现接口中所有的方法 | 如果子类不是抽象的话,必须提供抽象类中的所有方法的实现 |
构造器 | 没有构造器 | 可以有构造器 |
与正常java的区别 | 不同的类型 | 除了不能实例化抽象类之外,没有区别 |
访问修饰符 | 默认public,不可以使用其他的 | 都可以使用 |
多继承 | 可以多继承 | 不可以多继承 |