我已经研究过
“实现接口的类必须实现接口中声明的所有方法”
我正在研究CharSequence from this link这里的CharSequence具有4种方法,根据接口的定义,一个类必须实现该接口的所有方法。
我创建了一个类并实现了CharSequence接口
但是在这里,我没有重写“ toString()”方法并且工作正常。
我想知道当我不重写“ toString()”时我的代码没有给出任何错误,但是如果我没有实现other方法,它就会给出错误。
下面的代码对我有用,但我认为应该给出一个错误。
echo -n `date`" " >> log.txt # note the space
cat furby_product_page.html | pup "#productTitle json{}" | jq .[0].text >> log.txt
抱歉英语不好。
谢谢:)
答案 0 :(得分:1)
Java中的所有类都扩展了Object
类。
这是因为Object类实现了toString()
。
答案 1 :(得分:1)
所有类都具有toString()
方法,因为它们继承了Object#toString
,因此实际上是“实现”的。您应该但是应重写它并按照CharSequence文档指定的那样正确实施。
答案 2 :(得分:1)
toString
在java.lang.Object
中实现。为了非抽象,方法只需要实现即可。即使该方法是在实现该接口的类的超类中实现的,也是如此。
在某些情况下,如果存在协变返回类型,则可能在子类中获得综合方法。
答案 3 :(得分:1)
在Java中,每个类默认都扩展Java中的Object
类。 Object
类已经具有toString()
方法的默认实现。因此,用Java创建的每个类都有默认的父类,即对象类。
就您而言,假设您的类名为Test,Test使用的是Object类中提供的toString()方法的默认实现。
在编译期间,java为每个类生成.class文件。如果您看到Test.class
文件的代码,则它将看起来像:
class Test extends Object implements CharSequence{
// YOUR CODE
}
如果您想提供toString()
的实现,则可以在您的课程中覆盖它。
答案 4 :(得分:0)
所有Java类都扩展了名为Object
的预定义类。 Object类为您定义了一些方法,其中一个是toString()
。如果我们没有在自己的类中定义toString()
,则使用Object
类的toString()
。
但是,如果要实现接口,则必须定义在该接口中声明的方法。如果我们不想在实现类中定义这些方法,则必须将其声明为abstract
。