Skip to content

Commit 33b5560

Browse files
committed
Update readme.md
1 parent df2105a commit 33b5560

File tree

1 file changed

+38
-14
lines changed

1 file changed

+38
-14
lines changed

readme.md

Lines changed: 38 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -102,29 +102,53 @@
102102
- [Example](src/main/java/com/in28minutes/java/oops/inheritance/overriding/OverridingRules.java)
103103

104104
##Interface
105+
- An interface is a contract: the guy writing the interface says, "hey, I accept things looking that way"
106+
- Interface represents common actions between Multiple Classes.
105107
- Basic Example : [Flyable](src/main/java/com/in28minutes/java/oops/interfaces/Flyable.java)
106108
[Aeropane](src/main/java/com/in28minutes/java/oops/interfaces/Aeroplane.java) [Bird](src/main/java/com/in28minutes/java/oops/interfaces/Bird.java)
107109
- Rules and Examples : [Rules](src/main/java/com/in28minutes/java/oops/interfaces/IntefaceRules.java) [More Examples](src/main/java/com/in28minutes/java/oops/interfaces/InterfaceExamples.java)
108110

109111
##Java and Multiple Inheritance
110112
- Java does not support multiple inheritance.
111113
- However, A class can implement multiple interfaces. But, thats not Multiple inheritance in my book.
114+
- An example of a class in the JDK that implements several interfaces is HashMap, which implements the interfaces Serializable, Cloneable, and Map<K, V>. By reading this list of interfaces, you can infer that an instance of HashMap (regardless of the developer or company who implemented the class) can be cloned, is serializable (which means that it can be converted into a byte stream; see the section Serializable Objects), and has the functionality of a map.
115+
112116
##Abstract Class
113-
- [Abstract Class](docs/abstract-class.md)
114-
Abstract Class vs Interface
115-
- TODO
116-
Polymorphism
117+
- Abstract Class uses Inheritance and hence is an implementation of IS-A relationship between classes.
118+
- If you want to provide common, implemented functionality among all implementations of your component, use an abstract class. Abstract classes allow you to partially implement your class.
119+
- Example - Animal, Cat, Dog
120+
- An example of an abstract class in the JDK is AbstractMap, which is part of the Collections Framework. Its subclasses (which include HashMap, TreeMap, and ConcurrentHashMap) share many methods (including get, put, isEmpty, containsKey, and containsValue) that AbstractMap defines.
121+
- [Another Example - Spring AbstractController] (https://github.com/spring-projects/spring-framework/blob/master/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/AbstractController.java)
122+
- [More Details](docs/abstract-class.md)
123+
124+
##Abstract Class vs Interface
125+
- Real Difference - Apple vs Orange
126+
- Syntactical Differences For a Dumb Interviewer
127+
- Methods and members of an abstract class can have any visibility. All methods of an interface must be public.
128+
- A concrete child class of an Abstract Class must define all the abstract methods. An Abstract child class can have abstract methods. An interface extending another interface need not provide default implementation for methods inherited from the parent interface.
129+
- A child class can only extend a single class. An interface can extend multiple interfaces. A class can implement multiple interfaces.
130+
- A child class can define abstract methods with the same or less restrictive visibility, whereas a class implementing an interface must define all interface methods as public
131+
132+
##Polymorphism
117133
- [Polymorphism](docs/inheritance-and-polymorphism.md)
118-
Abstraction
119-
Encapsulation
120-
- See EncapsulationExample.java
121-
Inner Class
122-
- See /src/main/java/com/in28minutes/java/innerclass/InnerClassExamples.java
123-
- See /JavaInterviewGuide/src/main/java/com/in28minutes/java/innerclass/AnonymousClass.java
124-
Final Modifier
125-
- See FinalClass.java
126-
- See FinalMemberModifiersExample.java
127-
Member Access Modifiers
134+
135+
##Abstraction
136+
- Base of all programming
137+
138+
##Encapsulation
139+
- [Example](src/main/java/com/in28minutes/java/oops/encapsulation/EncapsulationExample.java)
140+
141+
##Inner Class
142+
- [Example](src/main/java/com/in28minutes/java/innerclass/InnerClassExamples.java)
143+
- [Example](src/main/java/com/in28minutes/java/innerclass/AnonymousClass.java)
144+
145+
#Access and Non Access Modifiers
146+
147+
##Final Modifier
148+
- [Final Class](src/main/java/com/in28minutes/java/classmodifiers/nonaccess/finalclass/FinalClass.java)
149+
- [Final Member Variable](src/main/java/com/in28minutes/java/membermodifiers/nonaccess/FinalMemberModifiersExample.java)
150+
151+
##Member Access Modifiers
128152
- See Package com.in28minutes.java.membermodifiers.access
129153
Class Access Modifiers
130154
- See Package com.in28minutes.java.classmodifiers.defaultaccess

0 commit comments

Comments
 (0)