1.面向对象的设计原则你知道有哪些吗
2.重载与重写有什么区别?
3.抽象类和普通类区别?
4.Java抽象类和接口的区别是什么?
5.抽象类能加final修饰吗?
6.接口里面可以定义哪些方法?
7.抽象类可以被实例化吗?
8.接口可以包含构造函数吗?
9.解释Java中的静态变量和静态方法
10.非静态内部类和静态内部类的区别?
1.面向对象的设计原则你知道有哪些吗?
感觉问的概率很低。稍微了解吧。
https://juejin.cn/post/7441128777747038271
2.重载与重写有什么区别?
重载是同一个类中,对同一个方法名的不同实现,是编译时实现多态。它们具有不同的参数列表(参数类型、参数个数或参数顺序不同),编译器根据调用时的参数类型来决定调用哪个方法。
重写是子类继承父类时,针对父类已有方法进行重写,在运行时实现多态。方法名、参数列表和返回类型必须与父类中的方法一致,通过@override注解来明确表示这是对父类方法的重写。
3.抽象类和普通类区别?
抽象类不能被实例化,一般只作为基类,被其他类继承和扩展使用。抽象类中的方法可以有实现也可以没有实现。而一个类只能继承一个抽象类。
4.Java抽象类和接口的区别是什么?
实现方式:implements,extends。接口可被多实现,抽象类可被多继承。
方法:接口不能有方法实现,而在 JDK 8 之后,接口中可以创建 static 和 default 方法了,java9中可以有私有方法。而抽象类可以有定义和实现。
变量:抽象类可以包含实例变量和静态变量,而接口只能包含常量(即静态常量)。抽象方法不能使用 private 修饰。
接口中的成员变量只能是 public static final 类型的,都只能public。接口中不能使用静态代码块。
5.抽象类能加final修饰吗?
不能,final是限制继承和修改的。但抽象类作为基类,需要被子类继承和方法重写的。因此两者冲突。
6.接口里面可以定义哪些方法?
抽象方法:public abstract
默认方法:default
静态方法:static
私有方法:private
7.抽象类可以被实例化吗?
不可以。尽管抽象类可以有构造方法,但这一方法是在被继承后,子类进行实例化时调用的。
8.接口可以包含构造函数吗?
不可以。接口都不能new,所以要构造方法也没用。
9.解释Java中的静态变量和静态方法
静态变量:在类加载时被初始化,进行内存分配,被所有实例共享,能通过类被调用。
静态方法:只能调用静态变量,可以避开实例,只能通过类被调用。不能被重写。