2-Java面试-面向对象

Java面试问题-面向对象 Q1。什么是多态?

多态被简要描述为“一个接口,许多实现”。多态性是能够在不同上下文中为某事物赋予不同含义或用法的一种特征-具体来说,就是允许诸如变量,函数或对象之类的实体具有多种形式。多态有两种类型:

img

编译时多态

运行时多态

编译时多态是方法重载,而运行时多态是使用继承和接口完成的。

Q2。什么是运行时多态或动态方法分派?

在Java中,运行时多态性或动态方法分派是一个在运行时而不是在编译时解决对覆盖方法的调用的过程。在此过程中,将通过超类的引用变量调用重写的方法。让我们看下面的示例,以更好地理解它。

class Car { void run() { System.out.println( & ldquo; car is running & rdquo;); } } class Audi extends Car { void run() { System.out.prinltn( & ldquo; Audi is running safely with 100 km & rdquo;); } public static void main(String args[]) { Car b = new Audi(); //upcasting b.run(); } } Q3。Java中的抽象是什么?

抽象是指处理思想而不是事件的质量。它主要处理隐藏细节并向用户显示基本内容。因此,您可以说Java中的抽象是向用户隐藏实现细节并仅向用户显示功能的过程。可以通过两种方式实现抽象:

抽象类(可以实现0-100%的抽象)

接口(可以实现100%的抽象)

Q4。Java接口是什么意思?

Java中的接口是类的蓝图,或者可以说它是抽象方法和静态常量的集合。在接口中,每个方法都是公共的和抽象的,但不包含任何构造函数。因此,接口基本上是一组带有空主体的相关方法。例:

public interface Animal { public void eat(); public void sleep(); public void run(); } Q5。抽象类和接口有什么区别? 抽象类 接口
抽象类可以提供完整的默认代码和/或仅提供必须覆盖的详细信息   一个接口根本不能提供任何代码,只能提供签名  
对于抽象类,一个类只能扩展一个抽象类   一个类可以实现多个接口  
抽象类可以具有非抽象方法   接口的所有方法都是抽象的  
抽象类可以具有实例变量   接口不能有实例变量  
抽象类可以具有任何可见性:公共,私有,受保护   接口可见性必须是公共的(或无)  
如果我们向抽象类添加新方法,则可以选择提供默认实现,因此所有现有代码都可能正常工作   如果我们向接口添加新方法,则必须跟踪该接口的所有实现并为新方法定义实现  
抽象类可以包含构造函数   接口不能包含构造函数  
抽象类很快   接口很慢,因为它需要额外的间接才能在实际的类中找到对应的方法  

Q6。Java中的继承是什么?

Java中的继承是一个类的属性可以被另一类继承的概念。它有助于重用代码并在不同类之间建立关系。在两种类型的类之间执行继承:

超级类(超级类或基础类)

子类(子类或派生类)

继承属性的类称为“子类”,而继承属性的类称为“父类”。

Q7。Java中继承有哪些不同类型?

Java支持四种继承类型:

单继承:在单继承中,一个类继承另一个属性,即将只有一个父类和一个子类。

多级继承:当一个类派生自一个类,而该类又派生自另一个类,即一个类有多个父类但处于不同级别时,这种继承类型称为多级继承。

分层继承:当一个类具有多个子类(子类),或者换句话说,一个以上的子类具有相同的父类时,则这种继承称为分层。

混合继承:混合继承是两种或多种继承的组合。

Q8。什么是方法重载和方法重载? 方法重载:

在“方法重载”中,相同类的方法共享相同的名称,但是每个方法必须具有不同数量的参数或具有不同类型和顺序的参数。

方法重载是为该方法的行为“增加”或“扩展”更多。

它是编译时的多态性。

这些方法必须具有不同的签名。

它在方法重载中可能需要继承,也可能不需要。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsxwjs.html