面试题1
如果一个类中没有抽象方法,那么把它定义为抽象类的意义是?
属于"设计层面"------>
不想让它 new 对象 , 肯定是有具体的子类存在
面试题2
abstract不能和哪些关键字使用?
abstract的应用场景 修饰类或者成员方法
修饰成员方法注意:
abstract不能和private共用 private限定只能在当前类访问
abstract不能和final一起使用 , 因为被final修饰的成员方法不能被重写,与abstract冲突
abstract不能和static一起使用 static修饰的静态方法和类相关,需要加载重写,最终需要使用对象来抽象类多态
标准格式
public abstract 返回值类型 方法名(参数列表);
面试题3
抽象类和接口有什么区别
1)成员的区别
抽象类中的成员变量可以是变量,也可以是被final修饰的常量
接口中的成员变量只能是常量,存在默认修饰符 public static final
抽象类中的成员方法既可以是抽象方法,也可以是非抽象方法,有抽象方法的一定是抽象类,抽象类里面不一定有抽象方法
接口中的成员方法一般指的是抽象方法或者default默认方法或者静态方法,必须要有方法体
抽象类的构造方法,有参构造无参构造方法都可以,还存在继承关系,需要分层初始话
接口中没有构造方法
2)关系的区别
类与类的关系---继承关系,只支持单继承,不支持多继承,可以多层继承
类与接口的关系----implements 一个类继承另一个类同时可以实现多个接口
接口与接口的关系----继承关系 ,可以单继承/多继承/多层继承
3)设计理念
抽象类的目的是节省内存,简化重复的动作,有具体的子类表达
接口的目的是增加某些不具备的功能,拓展性更高
今日面试题
最新推荐文章于 2024-07-29 14:22:26 发布