lecture6CS32Nachenburg

lecture6CS32Nachenburg - Monday,January25 th Inheritance...

This preview shows pages 1–7. Sign up to view the full content.

Monday, January 25 th   Inheritance  Polymorphism From Wikipedia: Inheritance is a way to form new classes (instances of which are called objects) using  classes that have already been defined.  Interested in creating your own  start-up ? Come to our CSAlumni Start-up Career Panel  and hear from 3 UCLA alums that founded their own startups! Feb 4 th , 4-6pm - 3400 Boelter Hall (Cookies and coffee provided!)

This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document
Inheritance Let’s say we’re writing a video game.  In the game, the player has to fight various  monsters  and save the world.  class Robot { public: void setX(int newX); int getX(); void setY(int newY); int getY(); private: int m_x, m_y; }; class:
Inheritance Now lets consider a  Shielded Robot  class: class ShieldedRobot { public: void setX(int newX); int getX(); void setY(int newY); int getY(); int getShield (); void setShield(int s); private: int m_x, m_y, m_shield; }; Let’s  compare both classes… What are  their similarities? class Robot { public: void setX(int newX); int getX(); void setY(int newY); int getY(); private: int m_x, m_y; };  Both classes have  x  and  y     coordinates   In class  Robot ,   x  and  y  describe    the position of the robot  In class  ShieldedRobot  they also     describe the robot’s position   So  x  and  y  have the same     meaning in both classes:  They     describe the position of the     robot  Both classes also provide the     same set of methods to  get  and       set  the values of  x  and  y

This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document
Inheritance class ShieldedRobot { public: void setX(int newX); int getX(); void setY(int newY); int getY(); int getShield(); void setShield(int s); private: int m_x, m_y, m_shield; }; class Robot { public: void setX(int newX); int getX(); void setY(int newY); int getY(); private: int m_x, m_y; };   In fact, the only difference    between a  Robot  and a  ShieldedRobot  is that a  ShieldedRobot  also has a  shield  to protect it. int m_x, m_y, m_shield ; It’s a pity that even though  ShieldedRobot   has just a  few extra features  we have to  define a  whole new class  for it! ShieldedRobot  essentially  is a   Robot !  A  ShieldedRobot shares all of the same functions  and data as a Robot; it just has some  additional  methods/data.
Inheritance Here’s another example: class Person { public: string getName(void); void setName(string & n); int getAge(void); void setAge(int age); private: string m_sName; int m_nAge; }; class Student { public: string getName(void); void setName(string & n); int getAge(void); void setAge(int age); int getStudentID(); void setStudentID(); float getGPA(); private: string m_sName; int m_nAge; int m_nStudentID; float m_fGPA; };

This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document
Inheritance Student  essentially  is a   Person !  A Student shares  all of the same functions and data as a Person; it just  has some  additional  methods/data.
This is the end of the preview. Sign up to access the rest of the document.

This note was uploaded on 03/11/2010 for the course CS 31 taught by Professor Melkanoff during the Fall '00 term at UCLA.

Page1 / 34

lecture6CS32Nachenburg - Monday,January25 th Inheritance...

This preview shows document pages 1 - 7. Sign up to view the full document.

View Full Document
Ask a homework question - tutors are online