在Java中实现接口时遇到的问题

时间:2019-01-23 01:50:02

标签: java charsequence

我已经研究过

“实现接口的类必须实现接口中声明的所有方法”

我正在研究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

抱歉英语不好。

谢谢:)

5 个答案:

答案 0 :(得分:1)

Java中的所有类都扩展了Object类。
这是因为Object类实现了toString()

答案 1 :(得分:1)

所有类都具有toString()方法,因为它们继承了Object#toString,因此实际上是“实现”的。您应该但是应重写它并按照CharSequence文档指定的那样正确实施。

答案 2 :(得分:1)

toStringjava.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