diff options
| -rw-r--r-- | java.html.markdown | 54 | 
1 files changed, 31 insertions, 23 deletions
| diff --git a/java.html.markdown b/java.html.markdown index 34da903a..39878c8f 100644 --- a/java.html.markdown +++ b/java.html.markdown @@ -513,14 +513,9 @@ public class ExampleClass extends ExampleClassParent implements InterfaceOne,  	}  } -<<<<<<< HEAD  // There are also two special types of classes, abstract and final. -// Marking a class as abstract means that it contains abstract methods that must -// be defined in a child class. Similar to interfaces, abstract classes cannot  -// be instantiated, but instead must be extended and the abstract methods  -// defined. Different from interfaces, abstract classes can contain a mixture of -// concrete and abstract methods. +  public abstract class Mammal()  {      // Abstract classes can contain concrete methods. @@ -539,17 +534,6 @@ public abstract class Mammal()      public abstract String getBinomialNomenclature();  } -// Final classes are classes that cannot be inherited from and are therefore a -// final child. In a way, final classes are the opposite of abstract classes  -// because abstract classes must be extended, but final classes cannot be  -// extended. -public final class SaberToothedCat extends Mammal -{ -    public String getBinomialNomenclature() -    { -        return "Smilodon fatalis"; -    } -=======  // Abstract Classes   // Abstract Class declaration syntax @@ -558,10 +542,13 @@ public final class SaberToothedCat extends Mammal  //     // Method declarations  // } -// Methods can't have bodies in an interface, unless the method is -// static. Also variables are NOT final by default, unlike an interface. -// Also abstract classes CAN have the "main" method. -// Abstract classes solve these problems. +// Marking a class as abstract means that it contains abstract methods that must +// be defined in a child class. Similar to interfaces, abstract classes cannot  +// be instantiated, but instead must be extended and the abstract methods  +// defined. Different from interfaces, abstract classes can contain a mixture of +// concrete and abstract methods. Methods in an interface cannot have a body,  +// unless the method is static, and variables are final by default, unlike an +// abstract class. Also abstract classes CAN have the "main" method.  public abstract class Animal   { @@ -578,7 +565,7 @@ public abstract class Animal  	// No need to initialize, however in an interface   	// a variable is implicitly final and hence has  	// to be initialized. -	private int age; +	protected int age;  	public void printAge()  	{ @@ -615,7 +602,28 @@ class Dog extends Animal  		pluto.eat();  		pluto.printAge();  	} ->>>>>>> adambard/master +} + +// Final Classes  +// Final Class declaration syntax +// <access-level> final <final-class-name> { +//     // Constants and variables +//     // Method declarations +// } + +// Final classes are classes that cannot be inherited from and are therefore a +// final child. In a way, final classes are the opposite of abstract classes  +// because abstract classes must be extended, but final classes cannot be  +// extended. +public final class SaberToothedCat extends Animal +{ +	// Note still have to override the abstract methods in the +	// abstract class. +	@Override +	public void makeSound() +	{ +		System.out.println("Roar"); +	}  }  ``` | 
