Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Object
- def abstract
- raise NotImplementedError.new("#{self.class.name} subclass responsibility")
- end
- end
- class Reiseangebot
- def initialize(name)
- @name = name
- end
- attr_reader :name
- def flug?
- false
- end
- def hotel?
- false
- end
- def mit_flug?
- false
- end
- def mit_hotel?
- false
- end
- def kein_flug?
- !flug?
- end
- def kein_hotel?
- !hotel?
- end
- def ohne_flug?
- !mit_flug?
- end
- def ohne_hotel?
- !ohne_hotel?
- end
- def einfach?
- true
- end
- def kombination?
- false
- end
- def to_s
- "#{self.class.name} - #{name}"
- end
- end
- class Reisebaustein < Reiseangebot
- def initialize(name, dauer, preis)
- super(name)
- @dauer = dauer
- @preis = preis
- end
- attr_reader :dauer, :preis
- def preis_pro_tag
- preis / dauer
- end
- end
- class Flug < Reisebaustein
- def flug?
- true
- end
- def mit_flug?
- true
- end
- end
- class Hotel < Reisebaustein
- def hotel?
- true
- end
- def mit_hotel?
- true
- end
- end
- class Reisekombination < Reiseangebot
- def initialize(name, hinflug, hotel, rueckflug)
- @name = name
- @hinflug = hinflug
- @hotel = hotel
- @rueckflug = rueckflug
- end
- def kombination?
- true
- end
- def mit_flug?
- true
- end
- def mit_hotel?
- true
- end
- end
- hinflug = Flug.new("HH-PMI", 1, 120)
- hotel = Hotel.new("Hilton-Palma", 14, 700)
- rueckflug = Flug.new("PMI-HAM", 1, 120)
- x = Reisekombination.new("Baden-auf-Mallorca", hinflug, hotel, rueckflug)
- puts x
Add Comment
Please, Sign In to add comment