接口有 toString 方法吗?

2022-09-04 05:48:40

如何使用接口的参考变量调用方法,该接口没有方法?toStringTesttoString

interface Test
{
    void show();
    String toHi();
}
class Demo implements Test
{
    public void show(){
        System.out.println("Show");
    }
    public String toString(){
        return "Hello"; 
    }
    public String toHi(){
        return "Hi";    
    }

    public static void main(String[] args) 
    {
        Test t=new Demo();
        String s=t.toString();
        System.out.println(s);
    }
}

答案 1

Java文档说...

When an interface has no direct SuperInterface, it will create abstract public method for all those public methods present in the Object class.

这就是您能够在接口引用上调用该方法的原因toString()


答案 2

Object有一个 toString() 方法,所以所有东西(基元类型除外)都有一个方法。Java 会将任何东西(甚至是空接口)视为具有 的所有方法,因为它总是如此。toString()Object