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
[Ruby] Define abstract methods,布布扣,bubuko.com
[Ruby] Define abstract methods
原文地址:http://blog.csdn.net/wonderfan/article/details/37383707