Я не уверен, что неправильно использую классы, но буду признателен за любую помощь. Я использую Autohotkey V2 и пытаюсь расширить класс до другого класса.
Class Person{
__New(info){
this.name := info.name
this.age := info.age
}
}
Class Teacher extends Person{
__New(subject){
this.subject := subject
}
}
Class Student extends Person{
__New(deskLocation){
this.deskLocation := deskLocation
}
}
Я полагаю, что такое планирование классов работает, потому что каждый учитель и ученик — это личность, но учителя и ученики разные. Итак, когда я объявляю свой класс учителя или ученика, я использую
T1 := Teacher("gym")
S1 := Student(11)
Это работает нормально, однако я не уверен, как мне следует устанавливать свойства для каждого человека.
Я пробовал исследовать, лол, но не нашел решения. Это заставляет меня думать, что я делаю что-то не так, но я не знаю что. Я также подумал о том, чтобы объявить свойства в классе Person, а затем назначить их классам Teacher и Student с помощью метода
Class Person{
name := ""
age := ""
}
Class Teacher extends Person{
__New(subject, name, age){
this.subject := subject
this.Define("Name","Age")
}
Define(name, age) {
this.name := name
this.age := age
}
}
но это будет очень повторяться, потому что мне нужно будет сделать это для каждого свойства, а затем просто удалить класс Person.

#Requires AutoHotkey v2
class Person
{
__New(info)
{
this.name := info.name
this.age := info.age
}
}
class Teacher extends Person
{
__New(info, subject)
{
super.__New(info)
this.subject := subject
}
}
class Student extends Person
{
__New(info, deskLocation)
{
super.__New(info)
this.deskLocation := deskLocation
}
}
t1 := Teacher({name: "Nikola",age: 100}, "Spanish")
MsgBox(t1.name " " t1.age)
MsgBox(t1 is Person)
MsgBox(t1 is Teacher)