2015-11-26 43 views
0

我做了两个类来试图理解类扩展。这里有两个班我即使使用相同的名称方法也不能构造函数

第一个是主

public class main extends Ok { 
    public static void main (String arg[]) { 
     new Ok(); 
    } 
} 

然后,我有好类

public class Ok { 
    public void Ok(){ 
     System.out.println("k"); 
    } 
} 

我得到警告“好吧从未使用过”。为什么?

+0

您正在实例化一个Ok对象,但您从未保存对它的引用。 –

+4

你正在创建一个新的void方法而不是构造函数...删除'void'。也不要将你的类命名为'main',因为'main'方法可能会导致问题。 – Frakcool

+0

从构造函数中删除void –

回答

4

您正在创建一个新的void方法而不是构造函数...删除void。也不要将您的类命名为main,这可能会导致问题,因为main方法。

public class Ok { 
    public Ok(){ 
     System.out.println("k"); 
    } 
} 

这样的,所以这是一个构造函数不是一个void方法:)

类扩展称为inheritance了。

想象一下我们在谈论Mamals(这是我们的类名),但我们都知道MamalsAnimal(要记住重要的词)。

我们知道全部Animal s可以eat(),pee()appeal()

当你写Animal类:

public class Animal { 
    public void eat() {...}; 
    public void pee() {...}; 
    public void appeal() {...}; 
} 

,然后写入类Mamal:

public class Mamal extends Animal { 
} 

它将拥有所有从Animal类除非他们private

方法有关继承的更多信息,请参阅下面的注释,阅读@JorgeCampos提供的this link (谢谢!)

+1

我会添加更多的信息给答案,因为OPs说'尝试理解类扩展'这意味着只是解决这个问题并不适当的解释。 –

+0

@JorgeCampos是的我想如何用简单的英语来解释它:) – Frakcool

+0

好吧,添加一个这样的链接:http://www.tutorialspoint.com/java/java_inheritance。htm –

0

构造函数有no return type,是not inherited,不能被隐藏或覆盖subclasses

删除void,你会很好。

相关问题