Estou fazendo um problema o mesmo possui relacionamento entre classes, tenho apenas a descrição e venho tentando solucionar, no entanto estou com duvidas ao aplicar o conceito de associações, encapsulamento e também herança. Comecei a fazer o programa mas não consegui entender qual classe que pode herdar um método ou atributo das que existem. Abaixo o problema.
Em uma clínica trabalham médicos e existem pacientes internados.
Cada médico é identificado pelo seu CRM, possui um CPF, um RG, um nome, um telefone e recebe um salário na clínica.
Um médico tem formação em diversas especialidades (ortopedia, traumatologia, infectologia, etc), mas só exerce uma delas na clínica.
Para todo paciente internado na clínica são cadastrados os seguintes dados pessoais: nome, RG, CPF, endereço, telefone e data de nascimento.
Um paciente tem sempre um determinado médico como responsável.
Pacientes estão sempre internados em quartos individuais, que são identificados por um número e pelo andar da clínica em que estão localizados.
Diariamente, um médico passa nos quartos para visitar os pacientes, e registra as observações realizadas sobre o estado do paciente.
Essas observações são cadastradas no sistema para futuras consultas ao histórico médico do paciente. Esse histórico deve registrar a data, o horário, a observação realizada e o nome do médico que a registrou.
Comecei a fazer esse código de acordo com o relacionamento que criei.
class Especialidade:
def __init__(self, especialidade):
self.especialidade = especialidade
class Medico:
def __init__(self, especialidade, crm, cpf, rg, nome, telefone, salario):
super().__init__(especialidade)
self.__rg = rg
self.nome = nome
self.crm = crm
self.__cpf = cpf
self.__telefone = telefone
self.__salario = salario
class Paciente:
def __init__(self, nome, endereco, rg, cpf, telefone, data_nasc, nome_medico):
self.nome = nome
self.endereco = endereco
self.rg = rg
self.cpf = cpf
self.telefone = telefone
self.data_nasc = data_nasc
self.nome_medico = nome_medico
class Quarto:
def __init__(self, numero, andar):
self.numero = numero
self.andar = andar
Se alguém puder me ajudar eu agradeço.