1 / 46

Lecture 16

COP3502: Introduction to CIS I. Lecture 16. Today Interfaces and Polymorphism Wednesday, Friday, Monday GUIs, Animation, Events. In-class review Wed Feb 26 In-class Exam Fri Feb 28 Will cover everything up through next Monday’s class. Super Session Thursday Feb 27 8pm-10pm.

gil
Download Presentation

Lecture 16

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. COP3502: Introduction to CIS I Lecture 16

  2. Today Interfaces and Polymorphism Wednesday, Friday, Monday GUIs, Animation, Events

  3. In-class review Wed Feb 26 In-class Exam Fri Feb 28 Will cover everything up through next Monday’s class

  4. Super Session Thursday Feb 278pm-10pm

  5. Tuesday Feb 18 Lab 3 (Objects) Tuesday Feb 25 Lab 4 (GUIs)

  6. Problem Set 3

  7. Reading Thinking in Java (Eckel) Ch. 1 Intro to Java Programming (Eck) Ch. 5

  8. classes can be both a superclass and a subclass at the same time!

  9. classes can only inherit from one superclass

  10. uses of inheritance • Organizing information • Grouping similar classes • Modeling similarity among classes • Creating a taxonomy among objects

  11. What does the subclass inherit? public methods protected methods protected instance variables

  12. What does the subclass inherit? public methods protected methods protected instance variables NOT PRIVATE ANYTHING

  13. subclass specializes superclass

  14. subclass specializes superclass adding new methods

  15. subclass specializes superclass adding new methods overriding existing methods

  16. subclass specializes superclass adding new methods overriding existing methods Implementing abstract methods

  17. subclass specializes superclass adding new methods overriding existing methods Implementing abstract methods Superclass “factors out” common capabilities among subclasses

  18. abstract methods empty methods in the superclass need to be implemented by inheriting subclass uses abstract keyword

  19. abstract methods empty methods in the superclass need to be implemented by inheriting subclass uses abstract keyword abstract void draw();

  20. any class with an abstract method should itself be declared abstract abstract class Shape { … abstract void draw(); … }

  21. overriding methods public class Square extends Shape { … @Override public void draw() { … } … }

  22. method resolution compiler walks up the class inheritance hierarchy tree until it finds the appropriate method

  23. super keyword public class Square extends Shape { … public Square(double x, double y, Color c, double len) { super(x, y, c); length = len; } … }

  24. super keyword public class Shape { … public void rotate(double radians) { //perform rotation } … } Pretend this method exists in our Shape implementation!

  25. super keyword public class Square extends Shape { … @Override public void rotate(double degrees) { double radians = Math.PI*degrees/180; super.rotate(radians); } … } Same as Shape.rotate()

  26. super keyword public class Square extends Shape { … @Override public void rotate(double degrees) { double radians = Math.PI*degrees/180; super.rotate(radians); } … } partial overriding Same as Shape.rotate()

  27. classes can only inherit from one superclass

  28. classes can only inherit from one superclass But they can inherit from multiple interfaces Superclass Interface Interface Subclass

  29. interface a set of instance methods without any implementation ie. a collection of abstract methods

  30. interface “factors out” commonality among very different classes that share behavior

  31. both have the ability to be “colored” might implement a Colorable interface

  32. interfaces declare methods, but don’t include any implementation

  33. interfaces No constructor usually no instance variables just a list of responsibilities even more abstract than abstract classes

  34. uses of interfaces give specific properties to an object Usually an adjective that ends in –ive or –able Colorable Rotatable Bounceable

  35. uses of interfaces give role to an object Usually ends in –er Container Mover Teacher

  36. public interface Colorable { // set the current color public void setColor(Color color); // get the current color public Color getColor(); }

  37. public interface Decorable { // models something which can be decorated public void decorate(Decoration dcr); }

  38. interfaces can extend any number of other interfaces subclass inherits all superclass methods AND all interfaces

  39. public interface Artistic extends Colorable, Decorable{ // probably uses decorate and change color methods public void putOnDisplay(); }

  40. methods for factoring out common code loops and functions

  41. methods for factoring out common code loops and functions classes and instances

  42. methods for factoring out common code loops and functions classes and instances superclasses and subclasses

  43. methods for factoring out common code loops and functions classes and instances superclasses and subclasses interfaces and implementations

More Related