minte9
LearnRemember



Classes

Abstract classes can't be instantiated.
 
/**
 * By marking the class abstract, you can prevent instantiation.
 * 
 * What exactly is an Animal object, what color, what size?
 * We don't know, so the class must be defined as abstract.
 */

package com.minte9.oop.abstract_keyword;

public class Classes {
    public static void main(String[] args) {
        
        new Dog("gray");

        //new Animal(); // force compile error - what color?
    }
}

abstract class Animal {
    protected String color;
    public Animal(String c) {
        color = c;
    }
}

class Dog extends Animal {
    public Dog(String c) {
        super(c);
    }
}

Methods

An abstract method must be overridden.
 
/**
 * An abstract class means ... the class must be extended.
 * An abstract method means ... the method must be overridden.
 */

package com.minte9.oop.abstract_keyword;

public class Methods {
    public static void main(String[] args) {
        new D();
    }
}
abstract class A {

    public abstract void setValue(); // abstract

    public void setName() { // non-abstract

    } 
}

class D extends A {
    
    @Override 
    public void setValue() { // Look Here

    }
}



  Last update: 450 days ago