2-Java面试-面向对象 (2)

让我们看下面的示例,以更好地理解它。

class Adder { Static int add(int a, int b) { return a + b; } Static double add(double a, double b) { return a + b; } public static void main(String args[]) { System.out.println(Adder.add(11, 11)); System.out.println(Adder.add(12.3, 12.6)); } } 方法覆盖:

在“方法重写”中,子类具有与父类相同的名称,名称和类型,参数和返回类型的方法。

方法覆盖是“改变”方法的现有行为。

它是运行时多态性。

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

它始终需要在“方法覆盖”中进行继承。

让我们看下面的示例,以更好地理解它。

class Car { void run() { System.out.println("car is running"); } } class Audi extends Car { void run() { System.out.prinltn("Audi is running safely with 100km"); } public static void main(String args[]) { Car b = new Audi(); b.run(); } } Q9。您可以覆盖Java中的私有或静态方法吗?

您不能在Java中覆盖私有或静态方法。如果您在子类中创建具有相同返回类型和相同方法参数的类似方法,则它将隐藏超类方法;否则,它将隐藏超类方法。这称为方法隐藏。同样,您不能覆盖子类中的私有方法,因为在那里无法访问它。您可以做的是在子类中创建另一个具有相同名称的私有方法。让我们看下面的示例,以更好地理解它。

class Base { private static void display() { System.out.println("Static or class method from Base"); } public void print() { System.out.println("Non-static or instance method from Base"); } class Derived extends Base { private static void display() { System.out.println("Static or class method from Derived"); } public void print() { System.out.println("Non-static or instance method from Derived"); } public class test { public static void main(String args[]) { Base obj = new Derived(); obj1.display(); obj1.print(); } } } } Q10。什么是多重继承?Java支持吗?

MultipleInheritance-Java面试问题-Edureka

如果子类从多个类继承属性,则称为多重继承。Java不允许扩展多个类。

多重继承的问题在于,如果多个父类具有相同的方法名称,则在运行时,编译器将很难从子类中决定执行哪个方法。

因此,Java不支持多重继承。该问题通常称为“钻石问题”。

Q11。 Java中的封装是什么?

封装是一种将数据(变量)和代码(方法)绑定为一个单元的机制。在这里,数据对外界是隐藏的,只能通过当前的类方法进行访问。这有助于保护数据免受任何不必要的修改。我们可以通过以下方式实现Java封装:

将一个类的变量声明为私有。

提供公共的setter和getter方法来修改和查看变量的值。

Q12。什么是关联?

关联是所有对象都有其自己的生命周期且没有所有者的关系。让我们以老师和学生为例。多个学生可以与一个老师联系,一个学生可以与多个老师联系,但是对象之间没有所有权,并且两者都有自己的生命周期。这些关系可以是一对一,一对多,多对一和多对多。

Q13。集合是什么意思?

集合是关联的一种特殊形式,其中所有对象都有其自己的生命周期,但是有所有权,子对象不能属于另一个父对象。让我们以部门和老师为例。一个老师不能属于多个部门,但是如果删除该部门的老师对象,则不会销毁。

Q14。Java中的成分是什么?

组合还是聚集的一种特殊形式,我们可以称其为“死亡”关系。这是强类型的聚合。子对象没有生命周期,如果删除父对象,则所有子对象也将被删除。让我们再次以房屋与房间之间的关系为例。房子可以包含多个房间,没有独立的房间生活空间,任何房间都不能属于两个不同的房子,如果我们删除房子,房间将自动删除。

Q15。什么是接口?

接口可以定义为没有数据成员和成员函数的接口。简单来说,空接口称为标记接口。Java中Marker接口的最常见示例是Serializable,Cloneable等。可以按以下方式声明marker接口。

public interface Serializable{ //do something; }

Q16 。 Java中的对象克隆是什么?

Java中的对象克隆是创建对象的精确副本的过程。从根本上讲,这意味着可以创建状态与原始对象相似的对象。为此,Java提供了方法clone () 来利用此功能。此方法创建当前对象类的新实例,然后使用与相应字段完全相同的内容初始化其所有字段。要对象clone(),必须实现标记接口java.lang.Cloneable以避免任何运行时异常。您必须注意的一件事是Object clone()是一种受保护的方法,因此您需要重写它。

Q17。Java中的构造函数是什么?

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

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