Boa noite! Estou fazendo uma atividade da internet que propõe que eu implemente as classes (e aparentemente super classe) de um diagrama UML de uma rede social fictícia, como seria?
Boa noite! Estou fazendo uma atividade da internet que propõe que eu implemente as classes (e aparentemente super classe) de um diagrama UML de uma rede social fictícia, como seria?
Tibério,
Pesquise por herança.
A herança é um princípio da OOP (programação orientada a objetos) que permite a criação de novas classes a partir de outras previamente criadas. Essas novas classes são chamadas de subclasses, ou classes derivadas; e as classes já existentes,
Exemplo em cima do UML que você comentou:
public class Publication {
private Date date;
private User user;
private String imageURL;
private boolean archived;
public boolean archive() {
return this.archived;
}
}
public class Post extends Publication {
private String text;
}
Nesse caso quando você instância a classe Post você herda todas as propriedades e métodos da classe Publication;
Então a classe Post além de text, agora possui (herda) as propriedades date, user, imageURL, archive e o método archive().
Conforme o Douglas falou, herança é um dos conceitos fundamentais da POO (programação orientada a objetos), que baseia-se na idéia de troca de mensagens entre objetos, e possui os seguintes pilares:
class Student {
// ...
}
class Instructor {
private Set<Student> students;
// ...
}
Existem dois subtipos de associações mais específicos:
class Engine {
// ...
}
class Car {
private Engine engine;
// ...
}
class Head {
// ...
}
class Body {
private Head head;
// ...
}
public interface Playable {
void play();
}
public class Violin implements Playable {
@Override
public void play() {
System.out.println("violino");
}
}
public class Guitar implements Playable {
@Override
public void play() {
System.out.println("violão");
}
}
public class Piano implements Playable {
@Override
public void play() {
System.out.println("piano");
}
}
public class Orchestra implements Playable {
private List<Playable> instruments;
// ...
@Override
public void play() {
instruments.forEach(Playable::play);
}
}