Final Exam: Senior Developer

Expected Duration
Lesson Objectives
Course Number
Expertise Level


Final Exam: Senior Developer will test your knowledge and application of the topics presented throughout the Senior Developer track of the Skillsoft Aspire Apprentice Developer to Journeyman Developer Journey.

Expected Duration (hours)

Lesson Objectives

Final Exam: Senior Developer

  • access outer class variables from your anonymous inner class
  • add a teammate to collaborate with you on GitHub
  • apply inheritance to model real-world entities
  • apply method overriding and recognize the concept of hiding
  • apply the two ways of initializing derived classes - implement an explicit no argument constructor in the base class or use the super keyword and have only parameterized constructors in both the base and derived classes
  • configure your Git client with your own information
  • connect your local Git repository to a remote one on GitHub using SSH
  • construct two parallel base classes and derived classes for each of those base classes
  • contrast Git with other version control system and identify its main features
  • correctly override the .hashCode method and write the code to correctly override the .equals method, which is inherited from java.lang.Object
  • create a local copy of a remote GitHub repo by generating a clone
  • create a local Git repository and commit code to it
  • create and define anonymous inner class objects
  • create and use final classes and final methods
  • define and use static final member variables
  • describe how the .equals method and the == operator are related
  • describe properties of public, private, and protected access modifiers
  • describe run-time and compile-time polymorphism
  • describe the use cases and the process of branching and merging in Git
  • document and track issues related to your application using GitHub Issues
  • document information about your GitHub repo using the Wiki feature
  • identify advantages and applications of inheritance
  • identify the role of access modifiers and recognize the basics of constructors
  • identify the situations which can lead to a merge conflict and how these could be resolved
  • identify what happens when there is a base and derived class that have many different constructors
  • implement a derived class that can both extend a base class and implement an interface
  • label specific commits in your repository's history using tags
  • manage the tags associated with your repo by removing them from your local as well as remote repositories
  • merge a feature branch to the master of your local Git repo and push the changes to the remote repo
  • override the method .toString, which is inherited from java.lang.Object
  • recall the purpose of a pull request and the steps involved in creating and approving them for a Git merge operation
  • recognize how access works from one package into another
  • recognize how easy it is to add a class into an inheritance hierarchy
  • recognize how in single inheritance, every object of the derived class is an object of the base class, but not every object of the base class is an object of the derived class
  • recognize how objects of derived classes will have independent copies of member variables even from the derived class
  • recognize how run-time polymorphism works
  • recognize how static methods are bound using compile-time rather than run-time binding
  • recognize how the methods derived from java.lang.Object work
  • recognize how to extend abstract classes and the implications of doing so
  • recognize how when you add your own constructor, Java takes away the default no-argument constructor it had provided
  • recognize how you can create one base class with multiple derived classes
  • recognize how you can upcast multiple levels up and how downcasting is very dangerous
  • recognize situations where multiple inheritance is not allowed
  • recognize situations where multiple inheritance is not allowed
  • recognize that a base class's constructor is invoked when a derived class object is instantiated
  • recognize that compile-time polymorphism does not include type demotions
  • recognize the semantics of using default access modifiers inside the same package
  • recognize the steps required to add new files to your Git repository
  • remove files from your repository as well as your development workspace using Git
  • set up a remote Git repository on GitHub
  • use advanced forms of overriding
  • use compile-time polymorphism and method overriding
  • use compile-time polymorphism, including type promotions
  • use interfaces and recognized that all of their methods are abstract by default
  • use interfaces that support default method implementations
  • use the instanceof operator to check that an object is an instance of every class in its inheritance hierarchy
  • use the protected keyword across packages
  • use the super keyword inside any method invocation in the derived class
  • view statistics related to your GitHub repo using the Insights feature
  • view the commit history of your repository
  • Course Number:

    Expertise Level