你好我刚刚学习了抽象,并且正在寻找一些澄清。
1 - 使用抽象方法能够传递静态类型检查而不必实际实现该方法的唯一原因是什么?有没有其他理由为什么有人想要一个方法抽象?
2 - 如果您创建了一个抽象方法并且其中包含一些代码,那么您将如何在子类实现中“添加”该代码。你会继续打字吗?我在例子中只看到了空的抽象方法。
如果这些问题有点基础,感谢和抱歉。
答案 0 :(得分:2)
抽象类(如接口)允许您指定您(您的类)和您的用户(您的类的用户)之间的合同类型。接口的不同之处在于您还可以提供一些行为,即您可以实现某些方法并将其他方法留空,这是抽象的。
抽象方法总是空的 - 这就是抽象的意思。抽象类的子类型可以通过实现方法本身来更改抽象父类中实现的方法的行为。他们可以通过首先调用父方法来重用父代码 - 就像使用构造函数一样。
答案 1 :(得分:1)
1:抽象方法是向程序员建议扩展代码的一种方式,“应该在代码中实现这样的方法”。例如,这可用于在一些更大的系统中预先设计接口。
2:是的。在实现某些抽象类的子类时,您不仅限于“父”类的方法和字段。
答案 2 :(得分:1)
1 - 抽象类应由常规类扩展。因此,通过使用抽象方法,它会强制在扩展抽象类的类中实现抽象方法,但是,它还可以控制程序员应该如何实现它。让我们说类Lion和class Dog都扩展了Animal类。让我们说Animal类有run()方法。狮子和狗都可以跑,但他们跑的方式,跑的速度有多快。因此,通过使run()抽象,您可以专门为Lion和Dog类定义run()。
2 - 抽象方法不能有方法体或任何代码。 例如:abstract void run(); 注意run();
之后没有开始和结束括号