Thursday, June 7, 2007

First Pattern From Felleisen Little Java Book

namespace LittleJavaBook

import System
import System.Collections

abstract class SeasoningD:
"""Description of MyClass."""
pass

class Salt(SeasoningD):
pass

class Pepper(SeasoningD):
pass

class Blend(SeasoningD):
_mySeasoning as SeasoningD

def constructor(p_SeasoningD as SeasoningD):
_mySeasoning = p_SeasoningD




class testme():
kosher as Salt
cayenne as Pepper
anySeasoning as SeasoningD
oneSeasoning = Blend(kosher)
twoSeasoning = Blend(cayenne)

2 comments:

Jonathan Mark said...

Here is an addition that makes the base class abstract.

namespace LittleJavaBook

import System
import System.Collections

abstract class SeasoningD:
"""Description of MyClass."""
abstract def sayHello():
pass

class Salt(SeasoningD):
def sayHello():
print "Hello, I'm salt"

class Pepper(SeasoningD):
def sayHello():
print "Hello, I'm pepper"

class Blend(SeasoningD):
_mySeasoning as SeasoningD

def sayHello():
print "Hello I'm a blend"

def constructor(p_SeasoningD as SeasoningD):
_mySeasoning = p_SeasoningD




class testme():
kosher as Salt
cayenne as Pepper
anySeasoning as SeasoningD
oneSeasoning = Blend(kosher)
twoSeasoning = Blend(cayenne)

Jonathan Mark said...

Here is how to do a property of an abstract class in boo

public abstract class MyAbstractClass:

public XPos as int:
get:
pass
set:
pass