Abstraction means ignoring irrelevant features, properties, or functions and emphasizing the relevant ones...relevant to the given project (with an eye to future reuse in similar projects).
Generalization creates a concept with a broader scope. Specialization creates a concept with a narrower scope. Reusing the interface! Inheritance: get the interface from the general class. Objects related by inheritance are all of the same type.
Polymorphism: One piece of code works with all shape objects. Dynamic binding: How polymorphism is implemented Take previous Shape class hierarchy remove inheritance remove general and abstract class Shape
1990 Oak (interactive television, big failure) 1994 Java (for the Internet) Main feature: "Write Once, Run Any Where" => wrap the operating system so they all look the same Designed for A fresh start (no backward compatibility) “Pure” OOP: C++ Syntax, Smalltalk style Improvements over C++ much harder to write a bad program Internet programming Very hard to create a virus Run in a web browser (and at the server) There is a speed issue (from Java 1.3 and up much better) C# Microsoft's “Java-Killer” project release 2001 Language very similar to Java Commen-Language Runtime (CLR) supports 30+ languages
I liked the explanation, especially because of the code sample. Good job.
ReplyDeletereally i got the point about the abstraction.well done
ReplyDeletereally i got the point about the abstraction.well done
ReplyDelete