Java方法重写

本文概述

  • 方法重载和方法重写java的区别
如果子类(子类)有相同的父类中声明的方法,它被称为方法覆盖在Java中。
换句话说,如果一个子类提供了该方法的具体实现,宣布了它的一个父类,它被称为方法覆盖。
使用Java方法覆盖
  • 方法重写是用来提供的具体实现方法已由其超类。
  • 方法覆盖用于运行时多态
Java方法重写规则
  1. 该方法必须与父类相同的名称
  2. 的方法必须具有相同的参数作为父类。
  3. 一定有一个是一个关系(继承)。
理解问题没有办法覆盖
让我们明白我们可能面临的问题,这个项目如果我们不使用方法覆盖。
//Java Program to demonstrate why we need method overriding //Here,we are calling the method of parent class with child //class object. //Creating a parent class class Vehicle{ void run(){System.out.println("Vehicle is running"); } } //Creating a child class class Bike extends Vehicle{ public static void main(String args[]){ //creating an instance of child class Bike obj = new Bike(); //calling the method with child class instance obj.run(); } }

输出:
Vehicle is running

问题是我需要提供的具体实现()方法运行子类重写这就是为什么我们使用方法。
方法覆盖的例子
【Java方法重写】在这个例子中,我们定义了运行方法在子类中定义父类,但有一些特定的实现。方法的名称和参数都是一样的,而且是一个类之间的关系,这是最重要的方法。
//Java Program to illustrate the use of Java Method Overriding //Creating a parent class. class Vehicle{ //defining a method void run(){System.out.println("Vehicle is running"); } } //Creating a child class class Bike2 extends Vehicle{ //defining the same method as in the parent class void run(){System.out.println("Bike is running safely"); }public static void main(String args[]){ Bike2 obj = new Bike2(); //creating object obj.run(); //calling method } }

输出:
Bike is running safely

Java方法覆盖的一个真实的例子
考虑这样一个场景,银行是一个类,它提供了功能的利率。然而,根据银行利率的变化。例如,印度国家银行ICICI和AXIS银行可以提供8 07年??0和9?利率。
Java方法覆盖主要是用于运行时多态中我们将学习下一个页面。
//Java Program to demonstrate the real scenario of Java Method Overriding //where three classes are overriding the method of a parent class. //Creating a parent class. class Bank{ int getRateOfInterest(){return 0; } } //Creating child classes. class SBI extends Bank{ int getRateOfInterest(){return 8; } }class ICICI extends Bank{ int getRateOfInterest(){return 7; } } class AXIS extends Bank{ int getRateOfInterest(){return 9; } } //Test class to create objects and call the methods class Test2{ public static void main(String args[]){ SBI s=new SBI(); ICICI i=new ICICI(); AXIS a=new AXIS(); System.out.println("SBI Rate of Interest: "+s.getRateOfInterest()); System.out.println("ICICI Rate of Interest: "+i.getRateOfInterest()); System.out.println("AXIS Rate of Interest: "+a.getRateOfInterest()); } }

Output: SBI Rate of Interest: 8 ICICI Rate of Interest: 7 AXIS Rate of Interest: 9

我们可以覆盖静态方法吗?
不,一个静态方法不能被覆盖。它可以证明运行时多态,所以我们将学习它。
为什么我们不可以覆盖静态方法?
因为静态方法是用类实例方法则是用一个对象。静态属于类地区,属于一个实例堆区域。
我们可以覆盖主要java方法吗?
不,因为主要是一个静态方法。
方法重载和方法重写java的区别点击我的方法重载和重写的区别

    推荐阅读