java util observerwhich adds an update feature to class that wishes to be notified when certain "observableobjects change state abstract classes and strong typing an abstract class is class that contains empty method declarations (that isdeclarations of methods without bodiesas well as concrete definitions of methods and/or instance variables thusan abstract class lies between an interface and complete concrete class like an interfacean abstract class may not be instantiatedthat isno object can be created from an abstract class subclass of an abstract class must provide an implementation for the abstract methods of its superclassunless it is itself abstract butlike concrete classan abstract class can extend another abstract classand abstract and concrete classes can further extend aas well ultimatelywe must define new class that is not abstract and extends (subclassesthe abstract superclassand this new class must fill in code for all abstract methods thusan abstract class uses the specification style of inheritancebut also allows for the specialization and extension styles as well (see section the java lang number class it turns out that we have already seen an example of an abstract class namelythe java number classes (shown in table specialize an abstract class called java lang number each concrete number classsuch as java lang integer and java lang doubleextends the java lang number class and fills in the details for the abstract methods of the superclass in particularthe methods intvaluefloatvaluedoublevalueand longvalue are all abstract in java lang number each concrete number class must specify the details of these methods strong typing in javaan object can be viewed as being of various types the primary type of an object is the class specified at the time was instantiated in additiono is of type for each superclass of and is of type for each interface implemented byc howevera variable can be declared as being of only one type (either class or an interface)which determines how the variable is used and how certain methods will act on it similarlya method has unique return type in generalan expression has unique type by enforcing that all variables be typed and that methods declare the types they expect and returnjava uses the technique of strong typing to help prevent bugs but with rigid requirements on typesit is sometimes necessary to changeor