Изучай ооп. Могу скинуть пример на java, чтоб понял сам принцип. public и private это видимость, private не виден извне. Создаём объект Human - человека: Human human = new Human(23,"Петя"); Где передали параметры 23 и "Петя" в конструктор. Эти параметры сохранены в объекте human в его полях. Теперь вызываем для данного объекта функцию, которая имеет доступ к полям объекта. int age = human.getAge(); функция getAge, вызванная у объекта human типа Human, вернула его возраст. Вызываем другой метод: human.kill(); Теперь создаем наследника классу Human, назовём его Child. Child является Human, но может переписать методы класса Human и добавить новые, таким образом расширить класс и изменить. Human human2 = new Child(23,"Вася",human); тут у конструктора есть дополнительный параметр, где задаётся родитель ребёнка. Теперь вызываем human2.kill(); этот метод мог быть переписан.