2013-04-22 4 views
0

Еще раз я прихожу к специалистам за помощью. В моем последнем посте я упомянул, что я все еще в школе, На этот раз мы проходим главу о интерфейсах (в книге нет кода без примеров). Назначение на этот раз выглядит следующим образом: «Создайте интерфейс Tuner с настройкой метода. Создайте два класса, называемых радио и гитарой, которые реализуют этот интерфейс. В основном создайте экземпляры каждого из этих классов и вызовите метод настройки для каждого экземпляра. " Я чувствую, что я полностью из рельсов на этом. Как и раньше, мне не нужно решение, чтобы кто-то снова разместил его в DUMDUM.Еще одна обучающая Java-головоломка

Это то, что у меня есть до сих пор.

public interface Tuner { 
public abstract void tune(); 
} 


public class Guitar extends Tuner implements Tune{ 

public static void main() { 
public void tune(){ 

}}} 




public class Radio extends Tuner implements tune{ 

public static void main(){ 


}} 

Я ценю любой совет по этому вопросу !!!!

Это мои последние изменения:

package interfaces; 
interface Tuner { 
    public abstract void tune(); 
} 



package interfaces; 
class Radio implements Tuner { 
public void tune(){ 
} 

} 

package interfaces; 
class Guitar implements Tuner { 
public void tune(){ 
} 
    } 

Пожалуйста, не стесняйтесь сказать мне, что я все еще ложному дерево.

+0

Чувак, вы должны прочитать о OOD: на идее получить представление о (в каком-либо конкретном порядке) абстракции, полиморфизме, наследовании и жизненном цикле объектов. – topchef

+0

один из способов взглянуть на него, если вы реализуете интерфейс, вы ДОЛЖНЫ использовать все методы. Таким образом, гитара и радио должны использовать ВСЕ методы в интерфейсе тюнера, если они реализуют его. Если вы расширяете CLASS тюнера, все методы в классе Tuner доступны вам, но вам не нужно использовать их все, если вам это не нужно. – user2280897

ответ

2

Вопросы, которые я вижу в то, что вы до сих пор:

  • В Java, А.Н. методы interface «s все public abstract, поэтому они не должны быть объявлены как таковой.
  • A Java class может продлить еще один class или abstract class, но реализует interface. Поэтому в вашем случае ваша гитара должна реализовать класс Tuner и будет содержать реализацию методов, объявленных в интерфейсе, который он реализует, в данном случае, метод tune.
  • Метод main - это точка входа в приложение, и вашему приложению требуется только один из них. Затем в этом методе вы создадите экземпляр Guitar и экземпляр Radio и вызовите метод tune для каждого из этих объектов-экземпляров.
+1

В точке 1: В Java интерфейс содержит * только * публичные абстрактные методы и общедоступные статические конечные переменные. И публичные, и абстрактные подразумеваются и обозначают методы как таковые, оставляя на усмотрение программиста. (больше набрав == никто никогда не делает) –

+0

Спасибо за совет, я сейчас пытаюсь сделать несколько немедленных изменений! – Ozzyfan2323

+0

Настоящая история @RayStojonic. Спасибо, что указали это. – digitaljoel

5

Это должно заставить вас двигаться в правильном направлении: на Java мы классы extend и интерфейсы implement.

+0

Спасибо, я ценю совет и ответ! – Ozzyfan2323

0
  1. interface s не abstract методы - все методы являются абстрактными по определению.
  2. Все участники interface являются public по умолчанию - вам не нужен public.
  3. Внедрение interface и удлинение class. Вам нужно implements Tuner.
  4. implements Tune просто лишний.
Смежные вопросы