Microsoft has been in the process of growth and expansion since its invention, with different
languages being implemented to make it more efficient and able to handle a wider diversity
of work. C# is one of the latest programming languages to be introduced in Microsoft.
Unlike the earlier programming languages that were closed sources, C sharp is an open
programming source that is easy to use, modern, and purpose-oriented. C# provides an
avenue to reuse existing codes crucial in enhancing object-oriented concepts such as classes
and inheritance. Class is a common term used when dealing with C# to refer to specific user-
defined data representing the states and behaviors of particular objects.C#, like any other
object-oriented programming language, is characterized by interdependence among different
classes in which one class either enhances the functioning of the other or overrides the other.
The relationship between classes in the inheritance concepts brings about the issue of the
base class and the derived class, where the former refers to the class from which the
functionality of the other class is derived. In developing a personal programming language, I
would have a class as a template for creating objects within, while the system objects would
be the specific objects fed into the different classes.
Object Oriented Programming, a framework for programming, is centred around classes,
which act as blueprints or patterns through which objects develop, and objects that exist in
reality are examples of a class. Inheritance is a means to illustrate the actual connections
between both of them. The process of inheriting the properties and functions of a different
class is known as inheritance. The parent class, sometimes referred to as the superclass,
represents the one from which the methods and characteristics are derived. And the child
class, referred to as a derived class, receives the parent class's attributes through inheritance.
Classes in C# offer the concepts of derived and parent classes, flexibility, and inheritance
(Surya and Padmavathi, 2019). for example, the base class Animal is being inherited by the
derived class Dog. The Animal class's attributes and techniques have been accessible to the
Dog class.
An illustration can be taken: Vehicle is a more general category that includes cars, buses,
and bicycles. This indicates that all of them have inherited the characteristics of the vehicles
that represent transportation. By using inheritance, we may describe this connection in
programming. An automobile is a real-world thing. The automobile comprises techniques
like acceleration and brake as well as characteristics like mass and color. A class is used to
build an object. After the class Car is established, we may use it to generate objects. An
example of object oriented programming or OOP utilizing C# would be Unity, there are
other object oriented programs and languages as well such as Unreal Engine which utilizes
C++. These two programs use a visual programming of C# or C++ to create video games
and almost all major game creators use one of these programs or their own in house form of
these visual editors to write in C# or C++. Almost all software is written with object
oriented programming as it is designed to run in .NET so no matter if its a video editor,
financial software, or even word processor it is mostly written in an object oriented
programming language such as C# or C++object oriented programming is essential in
smoothly and easily utilize different classes, system objects, and inheritance. Classes are
interrelated for specific reasons, and usually logically connected. A class is a group of
objects that are made up of code, where a object is a singular piece of code, inheritance is
when one class derives attributes from another class. All are equally important and have
different uses within object oriented programming. There are six main types of relationships
between classes: inheritance , realization / implementation , composition , aggregation ,
association, and dependency . The arrows for the six relationships are as follows:
Then we come to understand the specific content of the class relationship.
In the six types of relationships, the code structure of the three types of relationships such
as composition , aggregation , and association is the same as using attributes to store the
references of another class. Therefore, they must be distinguished by the relationship
between the contents.
Inheritance is also called generalization and is used to describe the relationship between
parent and child classes. A parent class is also called a base class, and a subclass is also
called a derived class.
In the inheritance relationship, the subclass inherits all the functions of the parent class, and
the parent class has all the attributes, methods, and subclasses. Subclasses contain
additional information in addition to the same information as the parent class.
For example: buses, taxis, and cars are cars, they all have names, and they can all be on the
road. Based on my understanding, the relationship between types of classes, system objects,
and inheritance its easily illustrated using a tree type diagram. The top of the structure is the
base, or superclass, and all branches downward are subclasses. In C# and the .NET
environment, System.Object is the default superclass. Classes can be definitions, record
layouts, report layouts, internal storage elements passed between functions in a program,
basically whatever the “thing” is that you are working on. I think of the class as the
definition of this “thing”. It is instantiated with the “new” command, and the elements
(variables, fields, etc.…) are accessible (maybe not changeable, but at least accessible) to
all modules which inherit the class. When a program is executing, the run time environment
generally provides a set of system tools, fields, commands, functions, etc. available for
programs that execute in the environment to access, these are system objects, and are be
accessed (inherited) into our programs by the superclass System.Object. Examples of
system tools are system time, date, environment variables such as .NET components, error
codes, and more. When specifying the classes, we can direct the inheritance of classes
specifically to system objects by using the “:object” parameter on the class statement. When
programs are executing, the classes that have been defined and invoked are virtual images
of those definitions and are accessible programmatically.
For example, I need a system to accept input from 4 different sources and merge the input
together and create one master set of data. The data is appointment schedule data from
various scheduling systems, and they all produce a downloadable text file with the
appointment data. I need this data merged into one master appointment scheduling system –
more flexible than what is available free through google or iOS. So, I will define a class
layout for each of the 4 input sources, and write modules that will open and read the text
files and update an MS Access database of appointments. a As an Application Developer for
a Construction Management Company, you create entire enterprise applications, and you'll
need to create software that caters to different departments like HR, Construction
Management, Payroll, and Adjusters. Types of classes, system objects, and inheritance are
crucial concepts to achieve this goal.
-For HR, custom classes can manage employee data and payroll information. System
objects like FileStream and Stream Reader classes can read data from CSV files for
managing employee data.
-Construction Management can use custom classes for building structures, equipment, and
tasks. Inheritance can create subclasses of existing classes to add new features specific to
construction management.
-Payroll can benefit from software to manage employee payroll data and calculate taxes.
Custom classes can manage employee payment information, and system objects like the
Math class can perform complex calculations.
-Adjusters can use custom classes to manage claims data and adjuster information.
Inheritance can create subclasses of existing classes to add new functionality, like managing
photos or documents related to a claim.
In conclusion, by applying the concepts of types of classes, system objects, and inheritance,
you can develop software that meets the unique needs of each department. This software
will be easy to maintain, provide a streamlined user experience, and improve the overall
efficiency of the company. As an Application Developer, it is crucial to utilize these
concepts to develop software that meets the specific requirements of the construction
management company since many applications will overlap. For example, within a
department, you'll often run across a scenario where different tables that share similar fields
share similar data sources, but are accessed by multiple applications, so maintaining clear
relationships is mission-critical in all enterprise-level applications. OOP has been available
in various languages and environments since the 1960s. I know it is hard to believe as most
books make it sound like OOP is new and the latest and greatest. My experience has been
in organizations where we have emphasized code reuse through OOP and others where
functional Programming (code and function libraries) have been used. I wish I could tell
that one side wins easily. We could argue that the development staff and management play
a huge role in the success or failure of any option. Many of you will bring up the concept
of code reuse as your argument for OO.