2015-11-26 2 views
0

Я сделал два класса, чтобы попытаться понять расширение класса. вот два класса у меня естьНевозможно сделать конструктор даже при использовании метода имени

первый один является основным

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

И тогда я Ok класс

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

я получаю предупреждение «Ok никогда не используется». Зачем?

+0

Вы создаете экземпляр объекта 'Ok', но вы никогда не ссылались на него. –

+4

Вы создаете новый метод void, а не конструктор ... Удалите 'void'. Также не называйте ваши классы «главными», это может вызвать проблемы из-за метода 'main'. – Frakcool

+0

удалить void from constructor –

ответ

4

Вы создаете новый метод void, а не конструктор ... Удалить void. Также не называйте ваши классы как main, это может вызвать проблемы из-за метода main.

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

Как что, так что конструктор не void метод :) расширение класса

называется inheritance тоже.

Представьте, что мы говорим о Mamals (это наше имя класса), но мы знаем, все Mamalsявляются (главное слово запомнить) в Animal.

Мы знаем все Animal s can eat(), pee() и appeal().

Когда вы пишете класс Animal:

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

А потом написать класс Mamal:

public class Mamal extends Animal { 
} 

Он будет иметь все методы Animal класса, за исключением, если они private

Для получения дополнительной информации о наследовании вы можете прочитать this link, предоставленный @JorgeCampos, в комментариях ниже (Спасибо!)

+1

Я бы добавил дополнительную информацию к ответу, так как OPs сказал ' попытайтесь понять расширение класса », что означает, что просто исправление этой проблемы неправильно объясняет это. –

+0

@JorgeCampos Да, я думаю о том, как объяснить это простым английским языком :) – Frakcool

+0

Хорошо, добавьте хорошую ссылку на него, такую ​​вот: http://www.tutorialspoint.com/java/java_inheritance.htm –

0

Конструкторы имеют no return type, являются not inherited и не могут быть скрыты или переопределены subclasses.

Удалить void и у вас все будет хорошо.

Смежные вопросы