支柱3:继承

继承是一个类在Java中从另一个类继承属性和方法的过程。当我们有是-a对象之间的关系。Java中的继承是通过以下方式实现的延展关键词。

现实生活的例子:

地球和火星继承了超级太阳系,太阳系继承了银河系。因此,银河系是一流的太阳系,地球和火星的超级等级。

在提出代码之前,让我们用一个通用示例来讨论继承在java应用程序中的使用。因此,考虑一个扩展Exception类的示例,以创建一个特定于应用程序的异常类,该类包含更多信息,如错误代码。例如,NullPointerException。

Java中有5种不同类型的继承,如下所示:

1.**单一继承:**类B使用扩展关键字继承B类

2.**多级继承:**C类继承B类,B类使用EXTEND关键字继承A类

3.**等级继承:**类B和C使用EXTEND关键字按层次顺序继承A类

4.**多重继承:**C类继承了A和B类,这里A和B都是超类,C只是一个子类。Java不支持多重继承,但我们可以使用接口实现。

5.**混合继承:**类D继承类B,C类继承A。这里,类D继承了两个超类,因此Java也不支持混合继承。

例子:

// super class

class Car {

   // the Car class have one field

   public String wheelStatus;

   public int noOfWheels;

 

   // the Car class has one constructor

   public Car(String wheelStatus, int noOfWheels)

   {

     this .wheelStatus = wheelStatus;

     this .noOfWheels = noOfWheels;

   }

 

   // the Car class has three methods

   public void applyBrake()

   {

     wheelStatus = "Stop" System.out.println(

       "Stop the car using break" );

   }

 

   // toString() method to print info of Car

   public String toString()

   {

     return ( "No of wheels in car " + noOfWheels + "\n"

         + "status of the wheels " + wheelStatus);

   }

}

 

// sub class

class Honda extends Car {

 

   // the Honda subclass adds one more field

   public Boolean alloyWheel;

 

   // the Honda subclass has one constructor

   public Honda(String wheelStatus, int noOfWheels,

          Boolean alloyWheel)

   {

     // invoking super-class(Car) constructor

     super (wheelStatus, noOfWheels);

     alloyWheel = alloyWheel;

   }

 

   // the Honda subclass adds one more method

   public void setAlloyWheel(Boolean alloyWheel)

   {

     alloyWheel = alloyWheel;

   }

 

   // overriding toString() method of Car to print more

   // info

   @Override public String toString()

   {

     return ( super .toString() + "\nCar alloy wheel "

         + alloyWheel);

   }

}

 

// driver class

public class Main {

   public static void main(String args[])

   {

 

     Honda honda = new Honda( 3 , 100 , 25 );

     System.out.println(honda.toString());

   }

}

支柱4:java的多态性

多态是以多种方式执行许多事情的能力。“多态”一词来自两个不同的希腊语单词–多态和变形。“Poly”的意思是很多,“变形”的意思是形式。所以多态意味着很多形式。在继承的情况下也可以存在多态性。根据实际实现,这些函数的行为不同。

现实生活的例子:

送货人将物品交付给用户。如果是邮递员,他会送信的。如果是送餐的男孩,他会把食物交给用户。像这样,多态性为传递函数实现了不同的方式。

有两种类型的多态性,如下所示:

1.静态或编译时多态性

2.动态或运行时多态性

静态或编译时多态性当编译器能够确定实际函数时,它被称为编译时多态编译时多态可以通过方法超载在爪哇。当类中的不同函数具有相同的名称但有不同的签名时,就称为方法重载。方法签名包含名称和方法参数。因此,重载方法有不同的参数。参数在数字或参数类型上可能有所不同。

例1:静态多态性

public class Car{

   

   public void speed() {

   }

   

   public void speed(String accelerator) {

   }

   

   public int speed(String accelerator, int speedUp) {

     return carSpeed;

   }

}

当编译器无法确定它是超类方法还是子类方法时,就会发生动态或运行时多态性。运行时间多态运行时多态是通过方法覆盖。当超类方法在子类中被重写时,它被称为方法重写。

例2:动态多态性

import java.util.Random;

 

class DeliveryBoy {

 

   public void deliver() {

     System.out.println( "Delivering Item" );

   }

 

   public static void main(String[] args) {

     DeliveryBoy deliveryBoy = getDeliveryBoy();

     deliveryBoy.deliver();

   }

 

   private static DeliveryBoy getDeliveryBoy() {

     Random random = new Random();

     int number = random.nextInt( 5 );

     return number % 2 == 0 ? new Postman() : new FoodDeliveryBoy();

   }

}

 

class Postman extends DeliveryBoy {

   @Override


> **Java网盘:pan.baidu.com/s/1MtPP4d9Xy3qb7zrF4N8Qpg
> 提取码:2p8n**



# 最后

分享一些资料给大家,我觉得这些都是很有用的东西,大家也可以跟着来学习,查漏补缺。

**[CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】](

)**

**《Java高级面试》**

![]()

**《Java高级架构知识》**

![]()

**《算法知识》**

> **Java网盘:pan.baidu.com/s/1MtPP4d9Xy3qb7zrF4N8Qpg
> 提取码:2p8n**



# 最后

分享一些资料给大家,我觉得这些都是很有用的东西,大家也可以跟着来学习,查漏补缺。

**[CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】](

)**

**《Java高级面试》**

[外链图片转存中...(img-Im4gpk8C-1631409467828)]

**《Java高级架构知识》**

[外链图片转存中...(img-jxANC3EQ-1631409467830)]

**《算法知识》**

![]()