Java面试题-Java基础(⑨)-抽象
抽象类接口晨考
1.写出抽象类的所有特点
1.抽象方法没有方法体,必须存在于抽象类中,均使用abstract修饰
2.抽象类不能直接new对象。必须通过new子类的方式创建对象
3.子类必须重写抽象类中的所有抽象方法,除非子类也是抽象类
4.抽象类中可以书写普通属性、实例方法、静态方法、构造方法
2.写出接口的所有特点
1.接口中默认都是全局抽象方法 不管是否书写均使用public abstract修饰
2.接口不能直接new对象,必须通过new实现类子类的方式创建对象
3.实现类(子类)必须重写接口中所有的抽象方法,除非实现类是抽象类或者也是接口
4.接口中不能书写普通属性(接口中默认都是全局静态常量,不管是否书写均使用public static final修饰)、普通方法、静态方法、构造方法
3.接口和抽象类的区别是什么?
以上两题的第四点
当你关注事物的本质,使用抽象类
当你关注某个功能,使用接口
4.final关键字可以修饰哪些内容,分别有什么含义
属性: 表示为常量,其值在定义以后不能发生改变。名称全部大写,多个单词之间使用下划线分割,通常在定义的时候直接赋值,或者在构造方法中赋值。
基本数据类型,值不能改变。
引用数据类型,不能指向新的地址,地址值不能改变。
方法: 表示此方法不能被重写
类:表示此类不能被继承
5.java中支持多继承吗?
不支持,Java是单根继承,一个类只能有一个直接父类,但是我们可以通过接口继承多个接口的方式实现类似多继承的效果
6.什么是开闭原则
程序对扩展开放,对修改源代码关闭
7.如何理解面向对象编程?
万物皆对象,将自然界中的任何事物都理解为对象,通过分析其特征和行为,在Java类中使用属性和方法将其进行呈现,再通过new对象的方式具体化。在程序中操作的对象对应的就是现实世界的实体
8.多态向上转型三种情况?
1.父类作为形参,实参为子类类型
2.父类作为声明返回值,实际返回值为子类类型
3.父类类型的集合、数组,元素为子类类型