2015-03-17 2 views
0

Программа «программа встреч», которую должен выполнять месячный класс, - «Ежемесячно», если дата запроса не раньше даты назначения и соответствует дате в месяце, то метод whenO должен возвращать значение true. Например, предположим, что у вас есть ежемесячная встреча, «пойдите в поход», установленную 20 мая 2003 года. Для даты запроса, 20 мая 2012 года, метод возникает, когда он должен вернуть true.Руководство с наследованием/переопределением?

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

У меня есть 3-х классов в данный момент

import java.util.Scanner; 

public class AppointmentDemo 
{   
    public static void main(String[] args) 
    {    
     Appointment[] appointments = new Appointment[2]; 
     appointments[0] = new Monthly(2003, 5, 20, "Go hiking."); 
     appointments[1] = new Onetime(2012, 4, 2, "Dentist appointment.");   

     System.out.println("Enter a date (year month day) to list appointments: (e.g. 2000 8 13)"); 
     Scanner in = new Scanner(System.in); 
     int year = in.nextInt(); 
     int month = in.nextInt(); 
     int day = in.nextInt(); 
     boolean found = false; 
     for (int i = 0; i < appointments.length; i++) 
     { 
      if (appointments[i].occursOn(year, month, day)) 
      { 
       found = true; 
       System.out.println(appointments[i]); 
      } 
     } 
     if(!found){ 
      System.out.println("No appointment found."); 
     } 
    } 
} 

Что является основным классом

супер класс:

public class Appointment 
{ 
    private String description; 
    private int year; 
    private int month; 
    private int day; 

    public Appointment(int year, int month, int day, String description) 
    { 
     this.year = year; 
     this.month = month; 
     this.day = day; 
     this.description = description; 
    } 

    public int getYear() { return year; } 

    /** 
    Returns the month of the appointment 
    @return the month 
    */ 
    public int getMonth() { return month; } 

    /** 
    Returns the day of the appointment 
    @return the day 
    */ 
    public int getDay() { return day; } 

    public boolean occursOn(int year, int month, int day) 
    { 
     return (year == this.year) && (month == this.month) && (day == this.day); 
    } 

    /** 
    Converts appointment to string description 
    */ 
    public String toString() { return description; } 
} 

и ежемесячный класс

public class Monthly extends Appointment { 
    private int year; 
    private int day; 
    private int month; 
    private String description; 

    public Monthly(int year, int month, int day, String description) { 
     super(year, month, day, description); 

     // TODO Auto-generated constructor stub 
    }   
} 
+0

В чем вопрос? – tnw

+0

@tnw первое предложение в значительной степени, где была бы хорошей отправной точкой для создания этого ежемесячного класса – user3586915

ответ

0

перезапись occursOn в Monthly, так что он не проверяет year.

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