DOC PREVIEW
Berkeley COMPSCI 61B - More Inheritance

This preview shows page 1-2-15-16-31-32 out of 32 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 32 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 32 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 32 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 32 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 32 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 32 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 32 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

More InheritanceImportant Datesequals(Object o)← Uses a1’s dynamic typeInheritanceSlide 6What about equals(Object o)Regular Inheritance (extends)AnimalsInterfacesSlide 11The Pet interfaceDog can implement the Pet interfaceCat can implement the Pet interfaceWe can have a Pet remote control (Pet reference)Can we have a Pet object?Interfaces can be cool!!!ExampleSummary of InterfacesCookies!Abstract Classes (less lazy than Interfaces)Abstract Class CookieChocolateChipCookie can extend the Abstract class CookieSlide 24We can have a Cookie remote control (Cookie reference)Can we have a Cookie object?Abstract Class SummarySlide 28How to do Pair Programming?Why to do Pair Programming?Slide 31Working with PartnersMore Inheritance7/2/2009Important Dates•Project 1 - Check-off –Thursday 7/02/2009 ready BEFORE lab•Review Session–Sunday 7/05/2009 – 306 Soda 1-4pm •Midterm 1–Tuesday 7/07/2009 – 10 Evans 5-6pm–Covers everything through Monday’s lab•Project 2 released–Thursday 7/09/2009•Project 1 due–Monday 7/13/2009 – 10pmequals(Object o)•Did you understand Wednesday’s lab?Animal a1 = new Dog();Animal a2 = new Dog();Dog d1 = new Dog();a1.sniff(d1);d1.sniff(a1);a1.sniff(a2);← Uses a1’s dynamic type← Uses a1’s static type← Uses a1’s dynamic typeUses a2’s static typeInheritance •Compilation:–CALLER: It makes sure that the static type of the object has the appropriate method–ARGS: It makes sure that the method takes in the static type of the arguments•Run-time:–CALLER: When you call a method on an object it looks for the method starting at the object’s dynamic type–ARGS: When you pass an object as an argument, it looks for a method with that static typeDogagebites 0truemainAnimal a1Animal a2Dog d1 Animal a1 = new Dog();Animal a2 = new Dog();Dog d1 = new Dog();a1.sniff(d1);d1.sniff(a1);a1.sniff(a2);Dogagebites 0trueDogagebites 0trueWhat about equals(Object o)•ArrayList was using an Object reference Object o1 = new Animal();Object o2 = new Animal();o1.equals(o2);•If others will call your methods with more generic references, you want to provide a method that takes in an ObjectRegular Inheritance (extends)AnimalsPetsEat BananasInterfaces•I have a GREAT idea! •Everyone will want to make Pets that can – eatKibble()–sitOnLap()•How?!?!– I don’t care!!!!AnimalsPetsEat BananasThe Pet interfaceDog can implement the Pet interfaceCat can implement the Pet interfaceWe can have a Pet remote control(Pet reference)Pet p1 = new Dog();Pet p2 = new Cat();p1.eatKibble();p2.sitOnLap();Can we have a Pet object?Pet p1 = new Pet();•No! You can’t create an object of an interface!Interfaces can be cool!!!Example•The sort method of the Array class promises to sort an array of objects, but under one condition: the objects in the array must implement the Comparable interface:public interface Comparable {int compareTo(Object other);}Summary of Interfaces•Interfaces don’t implement ANY methods–Just put a semicolon at the end of the method•Classes can implement multiple interfaces•To implement an interface you must write all of the methods that the interface definesCookies!Abstract Classes (less lazy than Interfaces)•I have a GREAT idea! •Everyone will want to make Cookies that can have these methods:– ingredients()–isDelicious()•How?!?!– isDelicious() is pretty simple, I’ll write that one–ingredients() ?!? Sounds too hard! I’ll make that abstractAbstract Class CookieChocolateChipCookie can extend the Abstract class CookieGirlScoutCookie can extend the Abstract class CookieWe can have a Cookie remote control(Cookie reference)Can we have a Cookie object?Cookie p1 = new Cookie();•No! You can’t create an object of an abstract class!Abstract Class Summary•Label an Abstract class as abstract•Label any methods that you don’t want to implement as abstract–Your children MUST write all of the abstract methods•Instance variables in the abstract class will be available in the child class•You can only extend one Class (abstract or otherwise)How to do Pair Programming?•Share one computer with your partner. •The “Driver” types and uses the mouse.•The “Navigator” watches, discusses and focuses on the big picture. •Take turns (about every 30 minutes) to switch roles.Why to do Pair Programming?•Writing code is easy compared to making code work!–The bugs are the part that takes a long time•Clearer programs, better designs, fewer bugs.•Great to talk about at an interview!•“Overcoming difficult problems”•Research Study – Error free code went from 70% to 85% with pairs. So 30% to 15% or a 50% reduction in bugs.Source: Wikipedia: Pair ProgrammingWorking with Partners•Use pair programming!•Talk about other commitments–Travel plans–Other classes–Jobs•Assume that if you haven’t seen their code – it doesn’t exist! •Talk to your partner the moment you get


View Full Document

Berkeley COMPSCI 61B - More Inheritance

Documents in this Course
Lab

Lab

4 pages

Matrix

Matrix

3 pages

Numbers

Numbers

14 pages

Lectures

Lectures

12 pages

Project 1

Project 1

24 pages

Exam

Exam

8 pages

Load more
Download More Inheritance
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view More Inheritance and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view More Inheritance 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?