Ruby | Anulación de método

El método es una colección de declaraciones que realizan alguna tarea específica y devuelven el resultado. Anular significa dos métodos que tienen el mismo nombre pero realizan tareas diferentes. Significa que uno de los métodos anula otro método. Si hay algún método en la superclase y un método con el mismo nombre en su subclase, al ejecutar estos métodos, se ejecutará el método de la clase correspondiente.

Ejemplo :

# Ruby program of method overriding
 
# define a class
class A  
  def a  
    puts 'Geeks'  
  end  
end  
 
# define a subclass  
class B < A  
 
  # change existing a method as follows
  def a  
    puts 'Welcome to GeeksForGeeks'  
  end  
end  
    
b = B.new  
b.a  

Producción :

Welcome to GeeksForGeeks

En el ejemplo anterior, la ejecución de a en el objeto de A imprimió Geeks desde el método a definido en la clase A , mientras que la ejecución de a en el objeto de B imprimió Bienvenido a GeeksForGeeks desde el método a definido en la clase B. Es muy útil porque evita que hagamos métodos con diferentes nombres y recordemos todo eso. El método a en la clase B anula el método a en la clase A.

Ejemplo :

# Ruby program of method overriding
  
# define a class
class Box
   # constructor method
   def initialize(width, height)
      @w, @h = width, height
   end
   # instance method
   def getArea
      @w * @h
   end
end
  
# define a subclass
class BigBox < Box
  
   # change existing getArea method as follows
   def getArea
      @area = @w * @h
      puts "Big box area is : #@area"
   end
end
  
# create an object
box = BigBox.new(15, 20)
  
# print the area using overriden method.
box.getArea()

Producción:

Big box area is : 300

En el ejemplo anterior, el método getArea en la clase BigBox anula el método getArea en la clase Box .

Publicación traducida automáticamente

Artículo escrito por DivyaPareek y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *