接口使得程序更具有灵活性和拓展性的主要原因是它实现了多态性。多态性指的是不同的类型可以实现相同的接口,并可以通过接口类型访问这些实现。
通过实现接口,不同的类型可以共享相同的行为,使得程序变得更加灵活和可拓展。例如,您可以定义一个绘制图形的接口,并且所有图形类型(如矩形、圆形、三角形等)都可以实现该接口。这使得您可以在不知道具体图形类型的情况下使用这些图形。
另外,接口还允许您在不修改已有代码的情况下添加新的功能。例如,您可以添加一个新的类型,它实现了接口中的方法,从而扩展了程序的功能。这种方式的好处是,您不需要修改现有代码,并且原有代码仍然可以正常使用。
因此,接口可以使得程序更具灵活性和拓展性,使代码更加简洁和易于维护。
阅读一下代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| package main
import ( "fmt" "math" )
type Shape interface { Area() float64 }
type Rectangle struct { width float64 height float64 }
func (r Rectangle) Area() float64 { return r.height * r.width }
type Circle struct { radius float64 }
func (c Circle) Area() float64 { return math.Pi * c.radius * c.radius }
func PrintArea(s Shape){ fmt.Println(s.Area()) } func main() { r := Rectangle{width: 10, height: 20}
c := Circle{radius: 2}
PrintArea(r)
PrintArea(c) }
|
这段代码中定义了两个类:长方形和圆,并且分别计算这两种图形型的面积