首页 > 代码库 > [Ruby] Define abstract methods

[Ruby] Define abstract methods

Ruby has its own style to define the abstract methods in its class.

class Shape
  
  def initialize
    raise NotImplementedError.new("#{self.class.name} is an abstract class")
  end
  
  def area
    raise NotImplementedError.new("#{self.class.name} area is an abstract method ")
  end
  
end

class Square < Shape
  
  def initialize(length)
    @length = length
  end
  
  def area
    @length ** 2
  end
end

Shape.new().area

puts Square.new(10).area