我知道什么是抽象,但是我想知道使用它的目的是什么,如果我们必须实现所有功能,为什么不仅仅编写它们呢?
interface Moveable{
public void move();
}
class Human implements Moveable{
public void move(){
System.out.println("walk");
}
}
//or just write (why use abstraction)
class Human{
public void move(){
System.out.println("walk");
}
}
有用的抽象用于控制复杂性。
如果没有这种有用的抽象,那么您的第一堂课的前5行会更容易编写。但是在现实世界中,任何有价值的东西都会随着时间增长。用户需要其他功能,出现错误并需要修复等。
当您不准备为接下来的500行代码做准备时,在下一课中,那么该代码将迅速变成维护方面的噩梦。
换句话说:现实世界太复杂了,无法在代码中完全表示出来。因此,您必须预见到应用程序中至关重要的基本“模式”,并找到以更简洁的方式表达它们的方法。
是的,在您的示例中,只有一个类实现了该接口。但是,如果您有50堂课或100堂课怎么办?然后,您的客户端代码将必须知道Human,Cat,Dog,Snake等所有这些类都有一个move()
方法。那真的是简单的比能检查“不类实现接口Moveable
?!
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句