golangにおける多態用法

491 ワード

package main

import "fmt"


/**
 *    
 */
type Draw interface{
     Paint()
}


type Circular struct{
     Name string 
}

type Triangular struct{
     Name string
}


func (c *Circular) Paint(){
     fmt.Println("c:",c.Name)
}

func (t *Triangular) Paint(){
     fmt.Println("t:",t.Name)
}

func main(){
     var  draw Draw

	 draw = &Circular{"     "}
	 draw.Paint()
	 draw = &Triangular{"      "}
	 draw.Paint()
}