Cat hungry.png
Здравствуйте! Собираем деньги на перевод материалов по электронике(https://www.allaboutcircuits.com/education/). Реквизиты указаны здесь.

Processing:Примеры/Наследственность

Материал из Онлайн справочника
Перейти к: навигация, поиск


Перевод: Максим Кузьмин (Cubewriter)
Перевел 2686 статей для сайта.

Контакты:

Проверка/Оформление/Редактирование: Мякишев Е.А.


Ambox content.png Черновик


Описание[1]

Класс можно задать, в качестве основы используя другой класс. В объектно-ориентированном программировании один класс может наследовать поля и методы другого. Объект, который наследует у другого, называется «подклассом», а объект, наследником которого является подкласс – «суперклассом». То есть подкласс является расширенной версией суперкласса.

Пример

  1. SpinSpots spots;
  2. SpinArm arm;
  3.  
  4. void setup() {
  5.   size(640, 360);
  6.   arm = new SpinArm(width/2, height/2, 0.01);
  7.   spots = new SpinSpots(width/2, height/2, -0.02, 90.0);
  8. }
  9.  
  10. void draw() {
  11.   background(204);
  12.   arm.update();
  13.   arm.display();
  14.   spots.update();
  15.   spots.display();
  16. }
  17.  
  18. class Spin {
  19.   float x, y, speed;
  20.   float angle = 0.0;
  21.   Spin(float xpos, float ypos, float s) {
  22.     x = xpos;
  23.     y = ypos;
  24.     speed = s;
  25.   }
  26.   void update() {
  27.     angle += speed;
  28.   }
  29. }
  30.  
  31. class SpinArm extends Spin {
  32.   SpinArm(float x, float y, float s) {
  33.     super(x, y, s);
  34.   }
  35.   void display() {
  36.     strokeWeight(1);
  37.     stroke(0);
  38.     pushMatrix();
  39.     translate(x, y);
  40.     angle += speed;
  41.     rotate(angle);
  42.     line(0, 0, 165, 0);
  43.     popMatrix();
  44.   }
  45. }
  46.  
  47. class SpinSpots extends Spin {
  48.   float dim;
  49.   SpinSpots(float x, float y, float s, float d) {
  50.     super(x, y, s);
  51.     dim = d;
  52.   }
  53.   void display() {
  54.     noStroke();
  55.     pushMatrix();
  56.     translate(x, y);
  57.     angle += speed;
  58.     rotate(angle);
  59.     ellipse(-dim/2, 0, dim, dim);
  60.     ellipse(dim/2, 0, dim, dim);
  61.     popMatrix();
  62.   }
  63. }

См.также

Внешние ссылки

  1. processing.org - Inheritance