Boa tarde pessoal, estou fazendo alguns exercicios da faculdade e não estou compreendendo o que foi proposto nesse:
Modificar a superclasse de modo que a mesma possa alterar comportamento em tempo
de execução, inserindo métodos que possam receber objetos dotipo “Ciclo_Basico” e
“Ciclo_Profissionalizante”.
package strategy;
public class Simula_Strategy {
public static void main(String args[]){
Ciencias_Exatas curso1 = new Ciencia_Computacao();
Ciencias_Exatas curso2 = new Fisica();
curso1.condicao();
curso1.especifica_disciplina_basico();
curso1.especifica_disciplina_profissionalizante();
curso1.grade_curricular();
curso2.condicao();
curso2.especifica_disciplina_basico();
curso2.especifica_disciplina_profissionalizante();
curso2.grade_curricular();
}
}
package strategy;
public abstract class Ciencias_Exatas {
Ciclo_Basico ciclo_basico;
Ciclo_Profissionalizante ciclo_profissionalizante;
public void especifica_disciplina_basico(){
ciclo_basico.cursa_disciplina_basico();
}
public void especifica_disciplina_profissionalizante(){
ciclo_profissionalizante.cursa_disciplina_profissional();
}
public abstract void grade_curricular();
public void condicao(){
System.out.println("Matricula nas Disciplinas");
}
}
package strategy;
public class Disciplinas_Profissionalizante implements Ciclo_Profissionalizante{
public void cursa_disciplina_profissional(){
System.out.println("Linguagem Programaçao I");
}
}
package strategy;
public class Disciplinas_Basico implements Ciclo_Basico{
public void cursa_disciplina_basico(){
System.out.println("Cursando Fisica I");
}
}
package strategy;
public class Ciencia_Computacao extends Ciencias_Exatas {
public Ciencia_Computacao(){
ciclo_basico = new Disciplinas_Basico();
ciclo_profissionalizante = new Disciplinas_Profissionalizante();
}
public void grade_curricular(){
System.out.println("Disciplinas do Curso de Ciencia da Computaçao");
}
}
package strategy;
public class Fisica extends Ciencias_Exatas{
public Fisica(){
ciclo_basico = new Disciplinas_Basico();
ciclo_profissionalizante = new Disciplinas_Profissionalizante();
}
public void grade_curricular(){
System.out.println("Disciplinas do curso de Fisica");
}
}
package strategy;
public interface Ciclo_Basico {
public void cursa_disciplina_basico();
}
package strategy;
public interface Ciclo_Profissionalizante {
public void cursa_disciplina_profissional();
}