Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public abstract Animal
- {
- public void eat(Food food)
- {
- // do something with food....
- }
- public void sleep(int hours)
- {
- try
- {
- // 1000 milliseconds * 60 seconds * 60 minutes * hours
- Thread.sleep ( 1000 * 60 * 60 * hours);
- }
- catch (InterruptedException ie) { /* ignore */ }
- }
- public abstract void makeNoise();
- }
- Note that the abstract keyword is used to denote both an abstract method, and an abstract class. Now, any animal that wants to be instantiated (like a dog or cow) must implement the makeNoise method - otherwise it is impossible to create an instance of that class. Let's look at a Dog and Cow subclass that extends the Animal class.
- public Dog extends Animal
- {
- public void makeNoise() { System.out.println ("Bark! Bark!"); }
- }
- public Cow extends Animal
- {
- public void makeNoise() { System.out.println ("Moo! Moo!"); }
- }
- Now you may be wondering why not declare an abstract class as an interface, and have the Dog and Cow implement the interface. Sure you could - but you'd also need to implement the eat and sleep methods. By using abstract classes, you can inherit the implementation of other (non-abstract) methods. You can't do that with interfaces - an interface cannot provide any method implementations.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement