100% found this document useful (3 votes)
21 views

Complete Download Polymorphism in Java: Methods and polymorphic algorithms applied to computer games 1st Edition Privitera PDF All Chapters

computer

Uploaded by

jerrylpinara11
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (3 votes)
21 views

Complete Download Polymorphism in Java: Methods and polymorphic algorithms applied to computer games 1st Edition Privitera PDF All Chapters

computer

Uploaded by

jerrylpinara11
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 55

Experience Seamless Full Ebook Downloads for Every Genre at textbookfull.

com

Polymorphism in Java: Methods and polymorphic


algorithms applied to computer games 1st Edition
Privitera

https://textbookfull.com/product/polymorphism-in-java-
methods-and-polymorphic-algorithms-applied-to-computer-
games-1st-edition-privitera/

OR CLICK BUTTON

DOWNLOAD NOW

Explore and download more ebook at https://textbookfull.com


Recommended digital products (PDF, EPUB, MOBI) that
you can download immediately if you are interested.

Applied Evolutionary Algorithms in Java Ghanea Hercock


Robert

https://textbookfull.com/product/applied-evolutionary-algorithms-in-
java-ghanea-hercock-robert/

textboxfull.com

Research Methods for Education Gregory J Privitera

https://textbookfull.com/product/research-methods-for-education-
gregory-j-privitera/

textboxfull.com

Analysis for Computer Scientists Foundations Methods and


Algorithms Michael Oberguggenberger

https://textbookfull.com/product/analysis-for-computer-scientists-
foundations-methods-and-algorithms-michael-oberguggenberger/

textboxfull.com

Analysis for computer scientists foundations methods and


algorithms Second Edition Oberguggenberger

https://textbookfull.com/product/analysis-for-computer-scientists-
foundations-methods-and-algorithms-second-edition-oberguggenberger/

textboxfull.com
Numerical Algorithms Methods for Computer Vision Machine
Learning and Graphics 1st Edition Justin Solomon

https://textbookfull.com/product/numerical-algorithms-methods-for-
computer-vision-machine-learning-and-graphics-1st-edition-justin-
solomon/
textboxfull.com

Learning Java Through Games 1st Edition Stanchev Lubomir

https://textbookfull.com/product/learning-java-through-games-1st-
edition-stanchev-lubomir/

textboxfull.com

Research Methods for the Behavioral Sciences 2nd Edition


Gregory J. Privitera

https://textbookfull.com/product/research-methods-for-the-behavioral-
sciences-2nd-edition-gregory-j-privitera/

textboxfull.com

Classic Computer Science Problems in Java 1st Edition


David Kopec

https://textbookfull.com/product/classic-computer-science-problems-in-
java-1st-edition-david-kopec/

textboxfull.com

Genetic Algorithms in Java Basics Jacobson Lee Kanber


Burak

https://textbookfull.com/product/genetic-algorithms-in-java-basics-
jacobson-lee-kanber-burak/

textboxfull.com
POLYMORPHISM IN
JAVA
POLYMORPHISM IN
JAVA
Methods and polymorphic algorithms
applied to computer games

First edition 2018

Author: Carlos Alberto Privitera

Advanced level
Book information:
 Title: Polymorphism in Java
 Edition: 1st edition 2018
 Author: Carlos Alberto Privitera
 ISBN-13: 978-1725953420
 ISBN-10: 1725953420
 Date of the first edition: spring 2018

About the Author:


Carlos Alberto Privitera is a specialist in Java SE and has been dedicated to the construction of
computer systems with Java SE since 2000. He has extensive experience in teaching the Java
language. He has specialized in creating content to teach courses on the Java SE language.
It has the titles of:
 “Técnico Analista de Sistemas de información” awarded by the “Instituto Superior de
Informática 9-012”.
 “Licenciado en Educación” awarded by the “Universidad Nacional de Quilmes”.
 “Profesor en Ciencias de la Computación” awarded by the “Universidad de Mendoza”.
 “Magister en Ingeniería del Software” awarded by the “Instituto Técnico de Buenos Aires”.

All rights reserved:


This work is the intellectual property of its author and any partial or total reproduction without
written permission of the author is expressly prohibited.

Rights of third parties:


The mention of brands, companies and tools are not intended to infringe any type of ownership of
third parties, are mentioned in this book for educational and practical purposes in the process of
teaching and learning the Java SE language.

Additional material on the Web


 https://libropolimorfismoenjava.blogspot.com/
 https://github.com/carlosprivitera

Contact with the author of the book:


[email protected]
Dedication:

To my children
Foreword
This book stands out for teaching programming based on polymorphism. Abundant examples in
Java code and illustrative graphics of the main ideas related to the topic: Polymorphism in Java.

The book "Polymorphism in Java" aims to give a modern and updated vision when learning Java
and in the particular subject of polymorphic algorithms. Students, teachers and developers will be
able to find a sequence of design patterns that create and use polymorphic algorithms, these
design patterns can be applied to solving problems of computer systems and everyday life.

A professional in the Java language can benefit from the book "Polymorphism in Java" by finding
an innovative way to solve problems with polymorphic algorithms. The design patterns, analyzed
in this work, are based on the inheritance between classes. Currently the difficulties of the Java
language have been overcome to a large extent and it is easy to understand and apply.

The book aims to teach fundamental concepts of object-oriented programming with Java SE, in a
clear and practical way, significantly reducing the learning curve. In the process you will learn to
program computers and use the Java SE language.

Goals:
 The present work aims that readers get strong knowledge in computer programming with the
Java SE language.
 Get the reader to acquire practical skills by using advanced Java SE concepts.
 Have the reader write computer programs based on object-oriented programming with the
Java SE language.

Recipients of the book


The book is aimed at anyone who wants to learn to program computers with Java SE, also the book
is very useful for people who want to teach the Java language. The professionals will find a
modern and updated work worthy of being studied and put into practice. Level of the book: it is
of advanced level. It requires knowledge of the basic details of the Java SE language.

Level of the book: it is of advanced level. It requires knowledge of the basic details of the Java SE
language.

The content of the book is applicable to all operating systems.

How to continue after learning the content of this book?


The learning of computer programming with the Java SE language is the gateway to learning
advanced content related to companies and corporate environments; it is advisable after learning
the content of this book to start learning Java EE, Java Web or Java for cell phones, if the reader
wishes.
Index of titles and subtitles

Content
Chapter I .......................................................................................................................................................... 13
Introduction ................................................................................................................................................. 13
Proposal for a basic architecture .............................................................................................................. 13
Design pattern based on inheritance ............................................................................................................ 14
Layered architecture to use a design pattern ............................................................................................... 15
Description of the design pattern based on the inheritance ......................................................................... 16
Types of relations between classes........................................................................................................... 16
Java has a keyword to declare each relationship ...................................................................................... 16
Criteria for building groups of configurations of patterns of architectures by layers ..................................... 16
What are abstract methods? .................................................................................................................... 16
What are abstract classes? ....................................................................................................................... 16
What is an interface? ............................................................................................................................... 16
There are two ways to declare abstract methods: .................................................................................... 17
How to overwrite methods that are abstract? .......................................................................................... 17
Criteria for assembling the different configurations of a design pattern ................................................... 17
What is a reference in Java? ..................................................................................................................... 17
What is an object in Java? ........................................................................................................................ 17
Structure of the book ................................................................................................................................... 18
Graphical representation of the groups of configurations of a design pattern .......................................... 18
Group number one of configurations ........................................................................................................... 19
Structure of the design pattern ................................................................................................................ 19
Configuration 1.1 - Create the object reference using the super class and the creation of the objects using
the subclasses. .................................................................................................................................... 20
Java UML diagram for 1.1 configuration – Variant 1: A reference, an object in memory ........................... 24
Source code for 1.1 Configuration – Variant 1....................................................................................... 25
Explanation of the most relevant lines of code in the 1.1 Configuration – Variant 1 .............................. 27
Java UML diagram for configuration 1.1 - variant 2: Many references, an object in memory by reference 34
Source code for configuration 1.1 - variant 2 ........................................................................................ 35
Explanation of the most relevant lines of code in configuration 1.1 - variant 2 ...................................... 36
Configuration 1.2 - References of objects and objects are created using the subclasses ........................... 38
Utility of configuration 1.2 .................................................................................................................... 39
Java UML diagram for configuration 1.2 ................................................................................................... 41
Código fuente para la configuración 1.2 ............................................................................................... 42
Explanation of the most relevant lines of code in configuration 1.2 ...................................................... 45
Group number two of configurations ........................................................................................................... 55
What happens if subclasses are declared with the abstract class modifier? .............................................. 55
Diagram of Java classes in UML - Configuration 2, possibility 1 (Inherit a pattern) .................................... 58
Source code of configuration 2, possibility 1 (Inherit a pattern) ............................................................ 59
End of chapter I - "How to use abstract classes in class inheritance" ................................................................ 62
Chapter II ......................................................................................................................................................... 65
How to use the classes that are of type Interface in the inheritance relation between classes? .................... 65
Group number three of configurations......................................................................................................... 65
What is an interface? ............................................................................................................................... 65
Example of an interface declaration: ........................................................................................................ 66
Configuration 3.1 - Creating the references of objects using the superclass and the creation of the objects
using the subclasses. ........................................................................................................................... 67
Characteristics of the configuration 3.1 - variant 1: a reference and many objects ................................ 67
Java class diagram in UML for configuration 3.1 - variant 1: a reference and many objects ....................... 68
Source code for configuration 3.1 - variant 1 ........................................................................................ 69
Explanation of the most relevant lines of code, pertaining to configuration 3.1 - variant 1 ................... 72
UML diagram in Java for configuration 3.1 - variant 2: many references and one object by reference ...... 79
Characteristics of the configuration 3.1 - variant 2: many references and one object by reference ....... 80
Source code for configuration 3.1 - variant 2 ........................................................................................ 80
Configuration 3.2 - Create references to objects and objects using subclasses.......................................... 82
Configuration utility 3.2 ........................................................................................................................... 82
How to implement the algorithms that are static? ................................................................................... 82
How to implement algorithms that are dynamic? ..................................................................................... 82
What is the static assignment of the reference? ....................................................................................... 82
What is the dynamic assignment of the reference? .................................................................................. 83
Class diagram in Java for configuration 3.2 - variant 1 .............................................................................. 84
Class diagram in Java for configuration 3.2 - variant 2 .............................................................................. 89
Source code for configuration 3.2 - variant 2 ........................................................................................ 90
Chapter III ........................................................................................................................................................ 93
Polymorphic algorithms that are mutable .................................................................................................... 93
What are mutable polymorphic algorithms? ................................................................................................ 93
What are mutable methods? ....................................................................................................................... 93
Class diagram for polymorphic algorithms that are mutable. Combination 1 - variant 1............................ 95
Source code that implements mutable polymorphic algorithms. Combination 1 - variant 1 ...................... 96
Class diagram in UML for mutable polymorphic algorithms. Combination 2 - variant 1 ........................... 100
Source code that implements mutable polymorphic algorithms. Combination 2, variant 1 ..................... 101
Chapter IV ..................................................................................................................................................... 105
Programming a computer game ................................................................................................................. 105
Polymorphic code of the game ............................................................................................................... 105
View of the computer game: Fly to the end................................................................................................ 106
Class diagram in Java for the Game: Fly to the end ..................................................................................... 107
Structure of folders and packages for the source code in Java .................................................................... 110
Source code in Java for the game view module .......................................................................................... 111
Source code for the classes that implement the client module ................................................................... 114
Source code for classes that implement the specialized behavior provider................................................. 118
Farewell words .............................................................................................................................................. 130
POLYMORPHISM IN JAVA
Chapter I

Introduction
In the construction of a software product, different structures are defined that determine the
architecture of the software that will be built. The basic structures in Java are the classes and the
relationships between the classes. Many times, a structure forms a recurring pattern in the
construction of a software product. A programmer attentive to identifying structures and patterns
can define an appropriate architecture to solve problems or build software. A proper architecture
is as important as the development process in software engineering.

A layer structure can determine an appropriate architecture to define specific functions that are
placed as strata; each layer can be replaced by a new layer without affecting the others. A precise
and unique communications interface must be defined between the layers.

Proposal for a basic architecture

Layer 1 - Application layer or view layer or software product


The layer of the software product is the layer that the user sees or should use, the application layer
provide the functionalities that the user has requested or wants. The application layer is a
concrete implementation of the design pattern. The application layer traditionally uses structured
algorithms, but this time the polymorphic algorithms will be added.

Layer 2 - Use the pattern


Layer 2 must create objects of the pattern type, some are objects created at runtime and others are
created at the design time of the application. Objects are considered artifacts that perform
different functions; an artifact can invoke different behaviors to the design pattern. The different
artifacts access a method interface. With access to the methods interface, polymorphic algorithms
can be written that provide functions to the application layer.

Layer 3 - Polymorphism
Layer 3 is the layer where polymorphic methods and polymorphic algorithms are written. Layer 4
separates the implementation of the polymorphic algorithms from the implementation of the
solution of the problem; the polymorphic algorithms express different ways of using a solution of
a problem.

Layer 4 - Pattern structure


Layer 4 - Pattern structure: Layer 4 is the design pattern that implements the strategy that solves the
problem that has been raised, the design pattern contains the specialized and traditional
algorithms. Different patterns can be implemented depending on the problem to be solved. A
pattern has the property of supporting the solution of many problems. A group of problems can
be solved by a single pattern. A very simple and useful pattern is the pattern that has a generic
superclass and many specialized subclasses in an algorithm. Java is a language that allows the
creation of hierarchical class structures, classes are related through inheritance.

Página 13 de 130
POLYMORPHISM IN JAVA
Design pattern based on inheritance

The following image shows a pattern of related classes through inheritance.

Layer 4 - Design pattern

Link

Superclass

Subclasses

 Abstract methods
 Interface

The image shows a generic representation of a design pattern based on the inheritance between
classes. Certain restrictions will configure different design patterns more suitable to be
implemented in Java.

Página 14 de 130
POLYMORPHISM IN JAVA
Layered architecture to use a design pattern

The following image shows an architecture made by layers. Each layer has a certain function to
implement, use and show the solution of a problem.

Layer 1 - Apply the pattern


Application (Software Product)
View of the pattern

Capa 2 – Mensajes al patrón


Use the pattern
• main () • Object factory
• test () • object store
• Object.myMethod () • artifacts

Layer 3 - Polymorphism Layer 4 - Design pattern

Link

Static Dynamic
polymorphic polymorphic
methods methods Superclass

Static Dynamic
polymorphic polymorphic Subclasses
algorithms algorithms

• Abstract methods
• Interface

Página 15 de 130
POLYMORPHISM IN JAVA
Description of the design pattern based on the inheritance

A design pattern based on inheritance has the following parts:


 A generic superclass
 Several specialized subclasses
 Algorithms implemented in subclasses or superclasses
 Inheritance relationship between the superclass and the subclasses using the Java keyword:
extends
 Interface: public methods of access to private data
 Interface: of abstract methods
 Interface: declaration of prototypes of methods
 Implementation relationship of the interface that declares prototypes of methods using the
Java keyword: implements
 Relationship of creation of objects between classes using the Java keyword: new

Types of relations between classes


1. The extension relationship joins two classes of the same type, one class extends another class.
2. The implementation relationship adds parts to a class; a class is added to another class to be
implemented as a component part of the class.
3. The object creation relation indicates that a class has an object reference to an object instance.

Java has a keyword to declare each relationship


1. extends: relation of equal or extension types or inheritance relation
2. implements: relationship of adding parts to a class or inheriting an interface
3. new: relation of composing or using objects for a class, classes have or use instances of
objects

Criteria for building groups of configurations of patterns of architectures by


layers

The configurations can be divided into three groups, the criteria used to assemble the different
groups of configurations is the declaration of abstract methods and the implementation of abstract
methods by superclasses or subclasses.

What are abstract methods?


An abstract method has no body, { }. The method can not implement code since it has no body to
write Java code.

What are abstract classes?


A class is abstract if it is declared as abstract using the keyword: abstract, or if at least one
abstract method is declared in its body, { }. You can not instantiate objects of an abstract class.

What is an interface?
The interface is a totally abstract class; it does not have Java code in its body. The interface declares
prototypes of abstract methods that will be inherited by other classes. Classes that inherit an
interface should overwrite the abstract methods and implement the missing code.

Página 16 de 130
POLYMORPHISM IN JAVA

There are two ways to declare abstract methods:


1. Declare methods using the keyword abstract
2. Declare prototypes of abstract methods in an interface

How to overwrite methods that are abstract?

There is a way to implement the missing code of abstract methods:


1. Overwrite abstract methods using the tag: @Override

Criteria for assembling the different configurations of a design pattern


The name of each configuration will depend on the creation of references to objects and the creation
of objects.

What is a reference in Java?


This line of code is a statement of a reference to an object: Rectangulo rectangulo = null;

What is an object in Java?


This line of code is a declaration to create an instance of an object, given a reference: rectangulo
= new Rectangulo(3, 4);

Programmers usually link the declaration of the reference and the creation of the object in a line of
code. The following line of code is a declaration of a reference to an object and the creation of an
object instance: Rectangulo rectangulo = new Rectangulo(3, 4);

Página 17 de 130
POLYMORPHISM IN JAVA
Structure of the book

Graphical representation of the groups of configurations of a design pattern

Design pattern

abstract classes Interface

Group 1 Group 2 Group 3

Configurations Configurations Configurations

Variants Variants Variants

Mutable
Polymorphism Polymorphism
polymorphism

Definition of restrictions to assemble a design pattern

The restrictions are based on the possibility or impossibility of declaring:


2. References to objects
3. Instances of objects.

Group properties
Create references Create objects
Superclass
Subclass
Interface

Página 18 de 130
POLYMORPHISM IN JAVA
Group number one of configurations

In group number one, there are configurations where the superclass is declared abstract, within this
group there are two configurations. Configuration number one declares the object reference using
the name of the superclass and the creation of the objects using the constructors of the subclasses.
The second configuration creates the reference of objects and objects using the subclasses.

This group has the fundamental characteristic that it prevents to create an object using the
constructor of the superclass. When declaring the superclass as abstract, it is not possible in Java
to create an object of an abstract class. In this group all the objects that can be created must be
created using the constructors of the subclasses.

Group properties
Create references Create objects
Superclass (abstract) Yes Not allowed
Subclass Yes Yes

In group one there are two very interesting configurations that form an adequate architecture to use
the inheritance pattern between classes.

Each configuration of the group includes an additional restriction that forces to make a correct use of
the design pattern.

Structure of the design pattern


The design pattern is based on a superclass and many subclasses and different combinations that
implement the interface of the abstract methods.

The design pattern must declare an interface of public methods that can be invoked by the classes
that want to access the pattern. The design pattern is a provider of behaviors.

The design pattern has to be encapsulated in a package and allow or restrict one of the following
four functions, depending on the problem you wish to solve.

1. Declare references of the subclasses or the superclass


2. Declare objects of the subclasses or the superclass
3. Inherit subclasses or superclasses for extension reasons
4. Overwrite the public methods of the design pattern for implementation reasons

In this book we will make a detailed study of the first two functions: 1) declare references of the
subclasses or the superclass, 2) declare objects of the subclasses or the superclass.

The possibilities of extension and changes in the design pattern will be left out of the study, in this
book. A detailed study will be made on the use of the design pattern by other classes. The classes
that will use the design pattern are called "clients."

Classes that are clients of the design pattern may implement polymorphic methods and algorithms.

Página 19 de 130
POLYMORPHISM IN JAVA
Configuration 1.1 - Create the object reference using the super class and the creation of the
objects using the subclasses.

Java code to create the configuration 1.1

Variant 1 - a reference and an object in memory


SuperClase objeto = null; //crear una referencia única
objeto = new SubClase01(); //apuntar la referencia a un nuevo objeto

objeto = new SubClase02(); //apuntar la referencia a un nuevo objeto

objeto = new SubClase03(); //apuntar la referencia a un nuevo objeto

objeto = new SubClaseN(); //apuntar la referencia a un nuevo objeto

Variant 2 - many references and one object by reference


SuperClase objeto1 = null; //crear una referencia única
objeto1 = new SubClase01(); //apuntar la referencia a un nuevo objeto

SuperClase objeto2 = null; //crear una referencia única
objeto2 = new SubClase02(); //apuntar la referencia a un nuevo objeto

SuperClase objeto3 = null; //crear una referencia única
objeto3 = new SubClase03(); //apuntar la referencia a un nuevo objeto

SuperClase objetoN = null; //crear una referencia única
objetoN = new SubClaseN(); //apuntar la referencia a un nuevo objeto

In the configuration 1.1 a new restriction is added, in the new restriction it is not advisable to create
references of the subclasses. In this configuration there are two restrictions: it is not feasible to
create objects of the superclass and it is not recommended to create references of the subclasses.

Properties of configuration 1.1


Create references Create objects
Superclass (abstract) Yes Not allowed
Subclass X (restriction) Yes

Utility of configuration 1.1


It is a suitable configuration for when there is a large number of specialized objects, each object has
the need to implement a particular or unique algorithm.

This configuration has two variants:


1. A reference and an object in memory (consumes little memory). The garbage collector has a
lot of work collecting old instances of unreferenced objects.
2. Many references and one object for each reference (consumes more memory). The garbage
collector has little work.

If there is a reference there may be a specialized object in memory. The only reference works like a
pointer that goes through the objects one by one. To access a new object you have to destroy the
current object and build a new object.

Página 20 de 130
POLYMORPHISM IN JAVA
If you have an object reference that points dynamically to different objects, it can happen that the
use of memory is reduced but the work of the garbage collector Java is very arduous; On the
other hand, when many references to objects are created, the use of memory is more likely to
increase and the work of the garbage collector decreases.

Dynamic assignment of new objects to a single reference causes objects not referenced in memory
to be cleaned by the Java garbage collector.

If the problem to be solved needs to create references to the subclasses, it would be appropriate to
use the 1.2 configuration or another configuration of another group.

The dynamic assignment of the reference to a new object allows the application of the dynamic
polymorphism mechanism, using the unique reference, unique messages can be sent to different
specialized objects.

To apply or use the mechanism of the dynamic polymorphism, it is necessary to send messages to
the objects through the methods interface. Each object must implement the same methods
interface.

The messages are sent to the methods implemented in the objects, if all the objects implement the
same methods interface then it is feasible to send the same message to each object. Each object
will implement a different algorithm and behave differently even if the message sent is the same.

The programmers, are very creative, write algorithms based on objects that send messages.
Algorithms based on sending messages are called polymorphic algorithms. Do not confuse
message-based polymorphic algorithms with specialized algorithms that are implemented in the
objects that receive the messages. Polymorphic algorithms are programmed in clients that use the
class inheritance pattern; the specialized algorithms are programmed in the subclasses or
superclasses of the pattern.

• Polymorphic algorithms send messages, (clients)


• Specialized algorithms receive messages. (providers)

Objects that receive messages from another object implement behavioral algorithms and algorithms
that send messages to another object are called polymorphic algorithms.

From the point of view of the classes we can say that there are classes, clients, that send messages
and classes, servants or suppliers, that respond to messages. The client classes implement
polymorphic algorithms and the supplying classes implement behavioral or specialized
algorithms.

Java classes have three mechanisms to implement interfaces of data access methods or algorithms
that they implement.
1. Inherit an interface: the Java keyword "implements" is used.
2. Declare abstract methods: the Java keyword "abstract" is used.
3. Declare public methods of access to private or encapsulated data.

Página 21 de 130
POLYMORPHISM IN JAVA
Layered Application Organization

Scheme that shows the relationship between: the algorithms that are polymorphic and the algorithms
that have a specialized behavior.

Supplier pattern
Implements behavioral
Client
algorithms

Implements
polymorphic Superclass
algorithms

Public methods Subclasses


interface

Interface of abstract
methods

It is advisable to organize the system into at least two layers, one layer for classes that are clients
and another layer for classes that are suppliers.

There are different ways to organize a Java application by layers:


1. A project with a package for all classes, (not recommended)
2. A project with two packages that will contain the classes assigned to each layer
(recommended)
3. Two projects in one application, one project for each layer. (Recommended for teams of
programmers or for large projects)

The same reasoning can be used if the application was designed with three or more layers. The
packets may contain other packets so one layer may contain other layers or sublayers. In Java, a
package is a folder created by the Operating System.

Página 22 de 130
POLYMORPHISM IN JAVA

IDEs, (Integrated Development Environments), are tools that help create applications that will
contain Java code projects. The projects will contain packages and the packages will contain files
with source code written in the Java language.

Some popular IDEs to write Java code:


 JDeveloper: http://oracle.com
 NetBeans: https://netbeans.org/
 Eclipse: https://www.eclipse.org/
 IntelliJ: https://www.jetbrains.com/
 Visual Studio Code: https://code.visualstudio.com/
 Android Studio: https://developer.android.com/

Layer number one: client layer


• The package called "app" will contain the classes that are clients and the classes that
implement the polymorphic algorithms.

Layer number two: provider layer


• The package called "patron" will contain the inheritance pattern between classes.

Página 23 de 130
POLYMORPHISM IN JAVA
Java UML diagram for 1.1 configuration – Variant 1: A reference, an object in memory

Página 24 de 130
POLYMORPHISM IN JAVA
Source code for 1.1 Configuration – Variant 1

package app;

import patron.Figura;
import patron.Rectangulo;
import patron.TrianguloRectangulo;

public class Main {


public Main() {
super();
}
private static Figura unaFigura = null;

public static void main(String[] args) {


Main main = new Main(); //el objeto main tiene información relevante a
la clase Main{}

//esto es un error, no es posible crear instancias de una clase


abstracta
//Figura figura = new Figura();

System.out.println("Polimorfismo dinámico o de referencia");

unaFigura = new Rectangulo(6, 8);


polimorfismo(unaFigura);

unaFigura = new TrianguloRectangulo(6, 8);


polimorfismo(unaFigura);

} //Fin del cuerpo del método main()

//Método polimórfico o sobrecargado por el argumento del parámetro


//El parámetro acepta tipos de argumentos distintos
//En algunas ocasiones el argumento es del tipo rectángulo
// y en otras es del tipo triángulo rectángulo

private static void polimorfismo(Figura figura) {

//Líneas polimórficas, tienen comportamiento distinto dependiendo de la


figura
//El compilador Java decide que comportamiento ejecutar dependiendo del
tipo

System.out.println(figura.getClass().getName());
System.out.println(" Altura = " + figura.getAltura());
System.out.println(" Base = " + figura.getBase());
System.out.println(" Área " + figura.area());
System.out.println(" Color " + figura.obtenerColor());

} //Fin del cuerpo del método polimórfico


} //Fin del cuerpo de la clase Main{}

Página 25 de 130
POLYMORPHISM IN JAVA
package patron;

import java.awt.Color;

//Niveles de control de acceso public para clases, una clase pública puede ser
accedida por cualquier clase de cualquier paquete
//Una clase sin modificador puede ser accedida por una clase de su mismo paquete

public abstract class Figura {

private Integer altura = 0;


private Integer base = 0;

public Figura(Integer b, Integer a) {


base = b;
altura = a;
//super();
}

public void setAltura(Integer altura) {


this.altura = altura;
}

public void setBase(Integer base) {


this.base = base;
}

public Integer getAltura() {


return altura;
}

public Integer getBase() {


return base;
}

public abstract Integer area();

public abstract Color obtenerColor();

package patron;

import java.awt.Color;

public class Rectangulo extends Figura {

private Color color = new Color(0, 0, 0);

public Rectangulo(Integer b, Integer a) {


super(b, a); //Acceder a la estructura de datos de la superclase
color = Color.orange;
}

@Override
public Integer area() {
return this.getAltura() * this.getBase();
}

Página 26 de 130
POLYMORPHISM IN JAVA
@Override
public Color obtenerColor() {
// TODO Implement this method
return color;
}
}

package patron;

import java.awt.Color;

public class TrianguloRectangulo extends Figura {

private Color color = new Color(0, 0, 0);

public TrianguloRectangulo(Integer b, Integer a) {


super(b, a); //Acceder a la estructura de datos de la superclase
color = Color.green;
}

@Override
public Integer area() {
return (this.getAltura() * this.getBase()) / 2;
}

@Override
public Color obtenerColor() {
// TODO Implement this method
return color;
}

Explanation of the most relevant lines of code in the 1.1 Configuration – Variant 1

This line of code indicates that the class Main{} belongs to the package called app, the package
called app will contain the classes of the layer named client.

package app;

Importing the classes from the package called patron. The package named patron will contain
the classes of the layer named proveedor. Unfortunately, the 1.1 configuration must have
access to all classes in the proveedor layer.

import patron.Figura;
import patron.Rectangulo;
import patron.TrianguloRectangulo;

Declaration of the Main{} class, the class named Main{} must be public. The JVM must find the
Main{} class to create a memory instance.

public class Main {

Página 27 de 130
POLYMORPHISM IN JAVA
Declaration of the constructor method called Main(), the Main() method must be public and
homonymous to the Main{} class. The JVM will search and execute the Main() method at the
time of creating an instance of the Main{} class.

Declaration of the constructor method, with the name of Main(). The Main() method must be
public and homonym to the Main{} class. The JVM will search and execute the Main() method
at the time of creating an instance of the Main{} class.

public Main() {
super(); //invoca el constructor de la superclase Object
}

Declaration of the reference to objects with the name of: unaFigura. The unaFigura reference is
of type Figure{}. The unaFigura reference is not pointing to an object instance.

private static Figura unaFigura = null;

Statement of the main() method, the main() method will be searched and executed by the JVM at
the time of instantiating the Main{} class.

public static void main(String[] args) {

Main main = new Main(); //el objeto main tiene información relevante a
la clase Main{}

//esto es un error, no es posible crear instancias de una clase


abstracta
//Figura figura = new Figura();

System.out.println("Polimorfismo dinámico o de referencia, una


referencia muchos objetos, con recolector de basura");

This statement will point to the reference named unaFigura to the new object created by the
constructor named Rectangulo().

unaFigura = new Rectangulo(6, 8);

The following line of code will execute the Polymorphic method called polimorfismo() with the
parameter of type Figura{} and the argument of the type Rectangulo{}.

A method is polymorphic when the JVM must decide which method to execute depending on the
type of parameter and the argument type. The JDK cannot predict at design time which method to
run because it does not know the argument type of the parameter.

polimorfismo(unaFigura);

The reference, called unaFigura, is pointed to a new object created by the constructor named
TrianguloRectangulo(). The rectangle object does not have a valid reference and must be
cleaned by the garbage collector. A reference is polymorphic if it is feasible to change the
referenced object type.

Página 28 de 130
POLYMORPHISM IN JAVA
unaFigura = new TrianguloRectangulo(6, 8);

The following line of code executes the polymorphic method called polimorfismo(), the method
has the parameter of type Figura{} and the argument of the parameter of type
TrianguloRectángulo{}.

polimorfismo(unaFigura);

} //Fin del cuerpo del método main()

The following code declares the dynamic polymorphic method called polimorfismo(), the
dynamic polymorphic methods are characterized by having the parameters of a type and the
arguments can be of another type. The parameter is of type Figure{} and the arguments can be
of the type Rectangulo{} and TrianguloRectangulo{}. The dynamic polymorphic
methods have polymorphic algorithms; the polymorphic algorithms are characterized by having
different behaviors depending on the argument assigned to the parameter. Dynamic polymorphic
methods send messages and are received by the classes that are providers of the different
behaviors. The classes that are clients implement polymorphic algorithms and the classes that are
providers implement specialized behavior algorithms. The main feature of dynamic polymorphic
algorithms is that they change their behavior depending on the argument assigned to the
parameter.

//Método polimórfico o sobrecargado por el argumento del parámetro


//El parámetro acepta tipos de argumentos distintos
//En algunas ocasiones el argumento es del tipo rectángulo
// y en otras es del tipo triángulo rectángulo
private static void polimorfismo(Figura figura) {

//Líneas polimórficas, tienen comportamiento distinto dependiendo de la


figura
//El compilador Java decide que comportamiento ejecutar dependiendo del
tipo
System.out.println(figura.getClass().getName());
System.out.println(" Altura = " + figura.getAltura());
System.out.println(" Base = " + figura.getBase());
System.out.println(" Área " + figura.area());
System.out.println(" Color " + figura.obtenerColor());

} //Fin del cuerpo del método polimórfico

}//Fin del cuerpo de la clase Main{}

Summary of Concepts:
• A method is polymorphic if it is overloaded in its parameters or arguments or both.
• An algorithm is polymorphic if it always sends the same message to classes that are
providers of behaviors. The class, client, Main{} sends messages getAltura(),
getBase(), area() y getColor() to classes that are providers of such behaviors.
• Classes that are customers implement polymorphic methods and algorithms, polymorphic
methods, and polymorphic algorithms send messages to classes that are providers of
specialized behaviors.

Página 29 de 130
Other documents randomly have
different content
— Vous trouvez que j’ai eu tort ? N’était-ce pas la plus simple
solution ?
— Un peu trop simple. Heureusement Agnès est intelligente…
Elle suivait sur son visage l’impression de chaque parole. Il ne
parut que surpris d’un blâme pourtant discret. Sa mère jugeait son
acte en femme du monde ou en dévote ; lui, il négligeait ces vaines
prudences. De leur entretien elle conclut trop vite que l’amour n’avait
pas inspiré son empressement pour Agnès.
En fait, il était d’abord content de lui : devant une nécessité
subite il avait montré sa décision et sa vigueur. Mais comment
l’étreinte de la belle nymphe flexible qu’il avait pressée contre son
cœur n’aurait-elle pas éveillé dans ses fibres un sourd émoi ? Il ne
se disait pas : J’aime. Était-ce déjà de l’amour ? Son inclination
restait latente. Le bourgeon, à la veille d’éclore, ne sait point qu’il
éclora. Il cédait à la volupté d’un attrait dont il ne voulait pas faire un
lien. Le bonheur initial de celui qui aime, c’est d’aimer.
Cependant, par intervalles, il se demandait :
— Que pense-t-elle de moi ? Me suppose-t-elle amoureux ?…
Elle s’est bien peu défendue. Si elle m’aimait, elle serait plus
coquette. N’importe ! Elle se souviendra toujours que moi, le premier,
je l’aurai portée dans mes bras.
Le premier ? Qui peut savoir ?…
Mais, sur-le-champ, il s’indigna contre un tel doute : Agnès était
pure, la promptitude même de sa confiance tenait à son ingénuité. Il
ne pouvait admettre d’elle une image diminuée ou flétrie ; à l’amie
réelle il substituait une idole ; et un déplaisir lui venait d’être incertain
si l’idole serait insensible ou devinerait son adoration.
Il se voyait fruste, impropre aux gentillesses qui éblouissent les
femmes. Qu’induire des façons d’Agnès avec lui, de clins d’œil, de
silences, de brusques rougeurs ? Chez elle, si nerveuse, les signes
apparents trompaient sur la vérité des impressions. Elle traitait
Jérôme, selon le mot d’Antoinette, « en camarade ». A supposer qu’il
lui parlât d’amour, que répondrait-elle ? Un refus, une attitude
évasive rompraient leur amitié ; elle n’aurait plus qu’à s’en aller, il la
perdrait. Donc, il devait attendre et se taire.
Mais ce mot : attendre fit sonner dans sa mémoire le conseil de
Dom Estienne : « Attendez et priez. » Jérôme priait peu et mal ; il
craignait qu’en se tournant vers Dieu il n’entendît l’injonction claire :
« Quitte tout et suis-moi. » Loyal dans ses rapports avec les
hommes, il rusait avec Celui qu’on n’élude pas.
Dans cet amour naissant il fuyait l’autre Amour.
La guérison d’Agnès fut plus lente qu’elle ne le présumait. Si elle
posait à terre son pied enflé, une vive souffrance la rendait boiteuse.
Pour qu’elle prît l’air dans le jardin et n’eût pas à descendre au
moment des repas, Mme Élise lui donna comme chambre provisoire,
au rez-de-chaussée, le petit salon.
Là, juste en face de son lit, s’offraient à sa méditation deux
cadres :
A gauche, une toile italienne, assez fraîche de tonalité,
représentant Andromède liée contre un roc, au-dessus de la mer. Le
monstre, à ses pieds, hurlait, impatient de la déchirer ; les vagues
écumaient autour d’elle ; le vent agitait sur son corps un lambeau de
voile et ses cheveux blonds. Les yeux de l’infortunée s’élançaient
vers le ciel d’où se penchait un cavalier, glaive en main, que portait
un cheval aile : le sauveur imprévu.
Et, à droite, un portrait de Jérôme adolescent. Comme, depuis la
guerre, il suivait la mode et rasait même sa moustache, elle
retrouvait sur sa figure de seize ans les traits familiers. Son œil
d’émerillon n’avait pas changé, ni son menton bien fendu par une
fossette, ni la jolie gouttière qu’il montrait sous ses narines. Mais les
joues étaient moins rondes, l’ossature des tempes et des pommettes
se dégageait plus virile. Les sourcils remontaient d’un trait un peu
rude. Accent de physionomie par où il rappelait ses ascendants
paternels et l’oncle Gaston.
Le regard d’Agnès, dans une fantaisie contemplative, allait de
Jérôme à Andromède :
— Andromède, c’est moi, qu’attend plus tard la solitude ou un
mariage bête. Toutes les tristesses pour me dévorer. A moins qu’un
libérateur…
Et, revenant à Jérôme :
— Il est à moi plus qu’il ne le sera sans doute jamais. Personne
ne peut savoir…
Personne ? Antoinette ne manqua pas d’observer la présence du
portrait. Une fois, en la quittant, elle lui dit avec un sourire de fine
malice :
— Je ne te laisse pas seule ; Jérôme te tient compagnie…
Pour la démentir, Agnès alla dehors s’étendre sur une chaise-
longue, auprès de deux cèdres qui massaient leurs touffes sombres
à gauche de la maison. De cet endroit la terrasse offrait à ses yeux
une ligne écarlate de géraniums, la file des élégants troënes, à tronc
mince, à tête arrondie, disposés dans des caisses rondes comme
les arbustes d’un décor de songe, et, au bas du double escalier, le
parterre entouré de roses, ouvertes maintenant, telles sur leurs tiges
que des joyaux. Çà et là, dans le jardin et à travers la campagne, les
pommiers fleuris faisaient comme des nuées de papillons éparses
au milieu de l’herbe.
Appuyée contre des coussins, Agnès voyait au-dessus d’elle de
clairs nuages, presque immobiles dans l’azur, semblables à des
arbres blancs. Sur ses mains, sur ses paupières l’air coulait doux
comme une eau tiède. Elle jouissait d’un parfait bien-être, et sa
beauté n’avait pas encore brillé d’une transparence aussi calme.
C’était un dimanche matin. Antoinette, avec Mme Élise, venait de
descendre pour la grand’messe. Les cloches en sonnaient le dernier
coup. Agnès se redressa, prit un paroissien qu’elle avait apporté, et
se mit à lire son office. Elle arrivait au dernier Évangile, quand
Jérôme sortit de la maison, rentra, ressortit et s’approcha d’elle. Il
avait une mine insolite, exaltée et soucieuse. Il prononça d’abord
des phrases dont il paraissait être absent :
— N’avez-vous besoin de rien ? On vous abandonne !
— Comment ! se récria-t-elle. Mais on est trop bon pour moi.
Quelle chose exquise, être malade ! On me fait un devoir de vivre en
enfant gâtée. Je dis à ma sœur : « Toinon, va me chercher du fil.
Toinon, apporte-moi de l’encre et du papier. » Elle quitte tout, elle
vole. Et votre mère, elle me comble, elle ne sait qu’inventer… Tenez,
c’est drôle, d’habitude, quand je vais à l’église, je suis très mal ma
messe ; les plus folles distractions, parce que j’ai le prêtre et l’autel
devant moi, m’emportent ailleurs. Ici, parce que l’église est loin, je
l’ai lue, ma messe, avec une attention dont je ne reviens pas. Je me
sens tellement tiède, évaporée !
— Moi aussi, dit Jérôme, et, ce qui est plus désolant, je veux
l’être. L’amour de Dieu m’épouvante comme une fournaise d’où plus
rien de ce qui est moi ne sortirait vivant.
Sans penser au mouvement qu’elle faisait, Agnès étira sur ses
jambes le bas de sa robe, et, avec une nuance de brusque ironie :
— Vous avez peur du feu ?
— Non, je n’ai peur de rien… sauf de moi-même.
Sa voix s’assombrit, il détourna les yeux ; d’autres aveux, peut-
être, allaient lui échapper. Agnès, au lieu de les solliciter, par un
recul de timide orgueil, brisa le dangereux entretien :
— Vous êtes bien tragique aujourd’hui ; allez faire un tour dans
les bois ; promenez Mob ; cela vous changera les idées.
Il s’éloigna, sans répondre, lentement, et disparut derrière la villa.
Agnès n’avait pas manqué à son rôle de femme : elle s’était mise en
défense, elle avait fait sentir sa supériorité.
Mais elle demeura bouleversée de joie, de compassion et
d’angoisse :
— Antoinette a bien vu ; il m’aime ; si je l’avais tant soit peu
poussé, il parlait… J’aurais dû peut-être. L’instant perdu reviendra-t-il
une autre fois ? Oui, si vraiment il m’aime, c’est une conversation
qu’il reprendra… Il ne m’a rien dit ; mais puis-je m’y tromper ? Cette
agitation, ce désarroi. Lui, d’ordinaire, si ferme… Le pauvre garçon !
Je lui ai fait une grande peine. Mais pourquoi cette peur de lui-
même ? quels scrupules ? quel secret ? Il faut savoir. Mon Dieu !
notre bonheur, vous le tenez dans votre main. Restera-t-elle fermée,
et que faire pour qu’elle s’ouvre ?
V

Ainsi Jérôme avait failli brûler ses vaisseaux. Moins fière, moins
rétractile, moins dénuée d’expérience, Agnès le conduisait à révéler
son tourment :
— Je vous aime ; mais, entre vous et moi, il y a cette chose
lourde, l’inquiétude d’une vocation…
Elle eût, de ses doigts légers, écarté l’invisible obstacle ; il
tombait à ses genoux.
C’est qu’en effet la nécessité d’un choix, jusqu’alors esquivée,
commençait à surgir devant lui, telle qu’au milieu d’une route une
statue dont la présence immobile impose à l’homme qui marche une
décision : passer à droite ou à gauche. Il n’hésitait pas, comme
Hercule, entre la Volupté et la Vertu. Il n’avait à se prononcer
qu’entre une vie plus parfaite et une autre qui l’était moins.
Se marier, s’établir en bon terrien, former une lignée vigoureuse
et nourrie de saintes traditions, était-ce un méprisable avenir ?
L’œuvre des survivants d’après-guerre serait assez belle s’ils
refaisaient la France et la chrétienté.
Mais il fallait aussi des prêtres. « Un pays sans prêtres, disait
Montcalm, ressemble à ces landes maudites où même les ajoncs
épineux ne savent plus pousser. » Parmi les morts de la guerre,
combien de prêtres et de futurs prêtres ? Qui les remplacerait ?
Ce dimanche-là, pendant la messe, Jérôme, cherchant l’évangile
du jour, avait rencontré une parole qui le traversa comme une plainte
exhalée hier : « Messis multa ; operarii pauci. Pour la moisson
immense trop peu d’ouvriers. »
Au moment de la communion, un dégoût de sa tiédeur l’avait
secoué : « Jésus veut la Cène préparée dans une grande salle, avec
des lits de repos. Et je le reçois dans le vestibule, dans le coin d’un
taudis maussade, en l’expédiant ! » Une minute il avait pris son âme
entre ses mains : « Seigneur, que faut-il que je fasse ? »
La réponse n’était pas venue, sans doute parce qu’il désirait
qu’elle ne vînt pas. Il avait quitté l’église plus assailli qu’avant
d’objections contre le séminaire. Elles formaient autour de sa
pensée une chaîne dansante, d’abord subtile, molle, mais qui se
resserrait comme un cercle d’airain.
— Si j’étais prêtre, je voudrais l’être absolument, mourir à moi-
même ; donc il vaut mieux ne pas l’être. A mon âge, quand j’ai, trop
longtemps déjà, vécu sous la férule d’autrui, aller m’asseoir sur les
bancs pour quatre ou cinq années d’études ; moi qui ai en horreur
les abstractions, grabeler des arguments scholastiques, éplucher
des cas de conscience, réfuter de vieilles hérésies, est-ce mon
affaire ? Et une vie étiolée entre quatre murs, celle de fusains pâles
dans une charmille sans soleil… Et le pli à prendre de la soumission
en tout… Non, vraiment, Montcalm s’est trompé. Ces héroïsmes ne
sont pas dans la ligne de mon avenir.
Et, surtout, ma mère a besoin de moi. Il faut que je l’aide à gérer
nos terres. Les métayers, là-bas, les braves gens d’alentour
attendent aussi mon aide. Je me dois à ce morceau du pays que je
puis sauver.
Une raison qu’il n’énonçait pas ajoutait, il le sentait bien, son
poids à toutes les autres : Agnès avait pris son cœur ; à présent elle
l’aurait tenu lié « avec un seul de ses cheveux. »
— Eh bien ! quoi ! je l’aime ! Est-ce que je fais mal ? Seulement,
voudra-t-elle ?…
Comme ce débat fléchissait vers une pauvre anxiété d’amoureux
incertain de la bonne réponse, il avait vu Agnès sortir sur la terrasse,
et, marchant avec précaution pour ne point paraître écloppée, aller
s’étendre à l’ombre bleue des cèdres, fermer voluptueusement les
yeux. Il s’était dit :
— Allons ; c’est l’instant.
Il descendit, l’aperçut qui lisait dans son paroissien ; un retour
d’idées pieuses le troubla ; il résolut de lui déclarer ce qu’il éprouvait,
le scrupule qui le séparait du bonheur. L’attente qui se prolongeait
irrita son angoisse ; il fit quelques pas dehors, mais n’osa
s’approcher. Une timidité imprévue, à la minute de l’aveu,
déconcertait son élan ; il rentra, se fit honte de son indécision, et,
ressortant, aborda la jeune fille avec cette figure étrange dont elle fut
saisie. Le mystère, le décousu des confidences ébauchées la mit en
alerte ; sous l’ironie de la rebuffade il ne discerna point l’émotion
terrible. Quand il avait eu le bras droit cassé par une balle, le choc
l’avait surpris comme un coup de fouet qui l’eût pincé jusqu’à l’os ; la
chiquenaude d’Agnès le blessa d’une douleur autrement cuisante. Il
se retira, comme abasourdi, humilié, certain qu’elle le jugeait
absurde, et consterné de la découvrir cruelle, au moment où il
n’aspirait qu’à fondre son âme en la sienne, dans la plus tendre
confiance.
Jérôme souffrait d’une imagination excessive ; ses désirs
bondissaient plus loin que le réel ; si quelque chose d’imprévu lui
résistait, il désespérait des autres et de lui-même.
Il s’en alla par l’avenue des tilleuls, prit au hasard, voyant à peine
où il marchait, sur la droite, un chemin désert. Il se demandait
pourquoi il existait encore ; sa personne lui semblait un point morne,
inutile dans l’immensité du monde. Son chagrin n’était qu’une folle
impatience de joie ; et il croyait la joie manquée à jamais !
Au bout du chemin, il s’arrêta, étonné d’être là plutôt qu’ailleurs. Il
se retourna, comme voulant renouer le nœud de ses sensations.
Derrière lui, clairsemés parmi des chênes, des genêts roux faisaient
des brasiers de fleurs. Aux Clouzeaux, dans son Bocage, il
connaissait un coin pareil. Cette analogie le dépaysa tout d’un coup ;
il se réveilla de son égarement.
— Agnès s’est moquée de moi. Elle a bien fait. Ma contenance,
le ton de ma voix étaient par trop stupides. Elle a vu, de loin, venir le
mot que je n’aurais peut-être pas dit. Elle a paré l’offensive ; elle a
rompu les chiens. Coquetterie ? Ou plutôt, c’est que je ne lui plais
guère. Tant pis pour elle !
Un sursaut d’amour-propre masculin le redressa ; de son
amertume il tira une reprise d’énergie. Il rentra, décidé à ne rien
laisser paraître. Il monta dans sa chambre où son miroir l’avertit que
sa mine portait les traces d’une commotion. Il se doucha d’eau
froide, peignit avec lenteur ses cheveux châtains dont les boucles
animaient la vigueur sanguine d’une oreille finement ourlée. Ses
joues avaient repris leur vive carnation. Détendu, dispos et beau
comme un astre, il redescendit pour le déjeuner.
Il s’attendait à retrouver Agnès ironique et distante. Elle se
montra simplement gentille. Démêlait-elle qu’il affectait de n’avoir
pas souffert ? Ne doutant point qu’elle l’avait peiné, elle s’appliquait à
dissiper leur malentendu. Elle le regardait manger, revenir à tous les
plats par une ostentation d’appétit où elle devinait une bravade. Elle
sentait chez ce garçon une force indomptée. Aurait-elle désiré la
soumettre ou s’y perdre ? Elle ne savait.
Au sortir de la table, on s’assit dehors, près de la maison. Le
Père lui-même, qui avait passé une excellente nuit, oublia sa sieste,
vint prendre l’air en compagnie des siens.
Mme Élise insista pour qu’Agnès s’étendît sur la chaise-longue.
Elle refusa, prétendant que cette position « de statue funéraire »
l’excédait. En se mettant sur une chaise basse à côté de Jérôme,
elle eut une manière imperceptible de se pencher vers lui et un
sourire qui signifiait : « Sommes-nous amis maintenant » ? Il en
pénétra l’intention et, tout d’un coup, redevint pleinement,
éperdument heureux. Par-dessus la tête d’Agnès il dominait les
rosiers de la pelouse ; un grand arbuste — le bouquet de la mariée,
— toutes ses fleurs blanches ouvertes, ressemblait à un buste de
femme sous de mousseuses dentelles. La conque verte du vallon,
couronnée d’azur, n’était plus pour lui qu’une corbeille nuptiale
offerte à la bien-aimée.
Il avait allumé un de ces petits cigares qu’on appelait, alors des
« diabolos ». Le Père, en veine de plaisanterie, aventura un
alexandrin dont il fit l’honneur à François Coppée :

Quelquefois, le dimanche, il fumait un cigare.

Antoinette, là-dessus, l’interrogea :


— En Orient, Père, en Chine, vous fumiez sans doute ?
— Non, jamais. Au séminaire, les premiers temps, bien que ce fût
interdit, je fumais dans ma chambre. Je fis vœu, ensuite, de ne plus
toucher une pipe, et j’ai tenu parole.
— Je me demande, insinua Mme Élise, comment on a pu faire de
vous un clerc discipliné.
— Oh ! vous savez par quelle méthode, chez nous, les gens du
Marais domptent les poulains qu’ils ont laissé grandir, jusqu’à trois
ans, libres, en plein herbage, avec le vent de la mer dans les
naseaux. Le jour où on veut les dresser, on lâche au milieu de leur
bande de vieux chevaux plus commodes et tranquilles. Tous
ensemble on les pousse dans une vaste grange. On s’approche de
l’animal effarouché ; on essaie de lui passer au cou un nœud
coulant. Il se défend, recule contre le mur où il s’écorche. A force de
patience, on en vient à bout. On l’attache, pour l’emmener, au cul
d’une charrette. Deux mois plus tard, le poulain sauvage est devenu
un bon cheval de trait.
Avant la fin de cet apologue, Mme Élise éclata de rire ; les deux
jeunes filles et Jérôme l’imitèrent plus discrètement. Les deux mains
allongées sur les bras de son fauteuil, la tête appuyée au dossier,
comme en rêvant, avec son air d’archimandrite oriental, le Père
continua :
— Pourquoi suis-je entré au séminaire ? En apparence, je n’avais
rien de ce qu’il faut. Une secrète impulsion m’y entraînait. J’ai résisté
tant que j’ai pu. Dieu a été le plus fort. Au début, je rongeai mon frein
si amèrement qu’à peine la porte fermée sur mon dos, j’eus envie de
sauter le mur, sans regarder derrière moi. La retraite, les premiers
cours, la soutane, la perspective de ressembler à tel ou tel qui la
portait, bien d’autres points me rebutèrent. Je souffris en silence ; je
ne voulais pas communiquer à d’autres ma nausée. Mon Directeur
était un homme compassé, rigide ; il eût achevé mon
découragement, si je m’étais ouvert à lui. Je me consolais (ô honte !)
avec ma pipe ; ce dont le Supérieur averti me blâma comme d’une
grave incartade. Je restai quand même, pour ne pas me dédire,
plutôt que de reparaître devant mon père (il avait contrarié de toutes
ses forces ma vocation) et d’être acculé à cet aveu : « Vous n’aviez
pas tort. »
Quelque chose de plus profond me retenait. Un jour, Dubourdieu,
cet ami qui rêvait d’être bénédictin (mais sa mère, veuve, avait
besoin de lui, et il ne l’a jamais quittée), Dubourdieu m’apporta au
parloir un livre qui l’avait bouleversé, les Visions et instructions
d’Angèle de Foligno. Je l’ouvris ; ce fut un trait de foudre dans la
sécheresse où je végétais. J’entrevis brusquement l’Amour divin ; il
me transverbéra. Les dégoûts, le quant à soi, la solitude du cœur, le
brisement de la volonté, est-ce que cela comptait ? Du coup, je me
précipitai dans toutes les rigueurs ; on dut modérer mon zèle. Je
passai même pour singulier ; et je l’étais. Ai-je cessé de l’être ?
Mme Élise coupa encore d’un léger rire cet aveu. Jérôme
paraissait préoccupé, presque ennuyé. Les confidences imprévues
de l’oncle dérangeaient son illusion amoureuse. Plus vaguement il
l’écouta poursuivre :
— Je fis pénitence de mes fragilités, des grandes et des petites ;
et, dans une intention naïve, cherchant quelle volupté illicite je
pourrais à jamais sacrifier, je brisai ma bonne pipe, non sans l’avoir
fumée une dernière fois… Peu à peu, je m’intéressai aux études ; je
me fis des amitiés dans mon sévère milieu. Bref, au bout de l’année,
le poulain sauvage était à peu près soumis.
— Ce qui ne vous a pas empêché, remarqua Mme Élise, de partir
ensuite pour les missions, afin, disiez-vous à votre frère, d’échapper
aux disciplines du diocèse, au moule…
— Taisez-vous, femme terrible. J’étais prédestiné à baptiser des
Chinois, voilà le motif. Privilège que j’ai durement payé, et je le paie
encore. Si c’était à recommencer, je me ferais missionnaire… en
France. Je frémis de penser au paganisme de nos campagnes, à la
déchéance des masses, et de ne plus rien pouvoir, sinon prier. Le
chanoine Lordereau me contait, l’autre jour, cette petite aventure qui
lui arriva, en l’an de grâce 1900, aux environs d’Auxerre. Il traversait,
le soir d’un beau jour d’été, un hameau perdu. Les gens étaient
assis devant leurs maisons, quelques enfants jouaient dans la rue. A
l’aspect d’une soutane, il y eut une soudaine panique, comme en
face d’un jeteur de sorts. Les gens couraient à leur porte, en
touchaient la serrure ou les gonds et rentraient, en se bousculant,
dans leur logis. Plus personne ; le prêtre pouvait croire que la peste
passait avec lui. Seule une vieille intrépide resta dehors, et, toute
souriante, osa l’interroger :
— N’êtes-vous point Monsieur Pénard ?
Or, il sut que l’abbé Pénard était venu dans ce hameau, dix-huit
ans auparavant. Depuis dix-huit ans, dans ce coin d’ancienne
France, pas un baptême, pas un mariage béni, pas un mourant
réconcilié. Aujourd’hui, le hameau lui-même est mort. Les vieux sont
en terre, les jeunes sont partis. Des toits ruinés, le vent, la pluie, les
araignées restent les seuls maîtres. Tels seront, avant un demi-
siècle, des milliers de villages. Plus de prêtres ; donc, plus de
famille, plus d’enfants, la mort partout.
— C’est affreux, conclut Jérôme qui se leva pour interrompre le
sinistre prophète. Mais, si l’on veut des prêtres, il faut d’abord des
enfants…
Le Père fut tenté de lui répondre avec bonhomie :
— Alors, marie-toi bien vite et prépare-nous des prêtres.
Une soudaine violence l’emporta ; il se redressa, fronçant les
sourcils, et son regard fulgurant parut s’enfoncer au loin, dans un
avenir de ténèbres :
— Si l’on attend les prêtres qui ne sont pas encore au monde, dit-
il d’un ton obscurément ironique, ce sera trop tard.
Jérôme, sans répliquer, se dirigea vers le vestibule. La
conversation, derrière lui, était tombée. Le Père faisait peser sur
tous comme l’attente d’un perpétuel orage grondant sur l’horizon.
Mais la voix limpide d’Antoinette rompit le silence oppressé :
— Ce matin, j’ai reçu, informait-elle Mme Élise, une lettre de la
vieille Hortense, la gardienne de notre logis. « Elle se languit de
nous espérer. » Il faudra bien, chère Madame, que nous songions,
au départ…
Impétueuse, Mme Élise coupa court à ce préambule :
— Je vous défends, Toinon, d’y songer. Vous quitterez Garches,
après les examens de Jérôme, en même temps que nous.
Elle mit dans sa décision tant de grâce affectueuse qu’Agnès et
Antoinette lui sautèrent au cou, l’étreignirent filialement.
Du grand salon, Jérôme, caché par le store d’une fenêtre,
observait Agnès, tandis que sa sœur prononçait le mot : départ. Un
rapide battement de cils, une moue contrariée marquèrent son
appréhension. Mais la réponse de Mme Élise la saisit d’un tel
transport qu’elle ne chercha point à le voiler.
Donc, elle était heureuse ; et pourquoi, si elle n’avait pas aimé ?
Une certitude ineffable, suave et poignante, emplit Jérôme jusqu’aux
moelles. Il contempla celle qu’il avait élue ; assuré de son cœur, pour
la première fois il osa penser : « Son âme et son corps, tout ce qui
est, en elle, beau et désirable, tout peut être à moi. Elle sera mienne,
comme je serai sien. » Une phrase à dire, et son bonheur se
décidait ! Dans un moment, quand sa mère rentrerait, il lui ferait
confidence de son inclination ; sans nul doute elle l’approuverait.
Il ressortit au milieu du vestibule. Une tenture à larges plis en
assombrissait le fond. Brusquement, il crut voir quelqu’un traverser,
une forme confuse qui, de biais, ressemblait à Montcalm, massif et
grave, la tête penchée sous son casque, tel qu’au dernier soir, où ils
marchaient, l’un devant l’autre, le long du boyau fangeux.
Le fantôme s’effaça, se fondit dans les plis de la tenture. Jérôme
frissonna, puis haussa les épaules : Hallucination ! De quel droit les
morts viendraient-ils inquiéter les vivants ?
Néanmoins, au lieu d’entretenir sa mère, il s’en alla, prenant
comme prétexte un rendez-vous à Paris avec des camarades ;
jusqu’au soir, il s’étourdit d’une gaîté vaine. Mais il ne put oublier
l’apparition.
VI

Vendéen, Jérôme avait été nourri, aux veillées, d’histoires de


chèvres fantastiques, de sorciers changés en chats ou en loups-
garous ; il avait cru aux revenants. Il avait éprouvé l’angoisse et
l’attrait de frôler le monde des Esprits. Une certaine nuit de Noël, il
accompagnait dans les bois le garde du domaine ; la lune était
haute ; les bouleaux craquaient sous le gel ; au centre d’une clairière
une nappe de givre couvrait des touffes serrées d’ajoncs ; là, il avait
vu, autour d’une longue table, des hommes blancs assis.
Mais, le fantôme de Montcalm, il ne voulait pas y croire. Il
essayait une explication : au moment où la présence d’Agnès visait
à l’absorber tout entier, l’image du mort, chassée des profondeurs de
son être, s’était animée en une silhouette fictive, dans la pénombre
du vestibule. Seulement il comprenait bien qu’il se payait de mots,
qu’un mystère ne peut s’élucider par un autre mystère. Illusoire ou
non, la vision signifiait la persistance intime du duel qui l’avait déjà
déchiré : la promesse donnée à Montcalm l’emporterait-elle sur
l’amour qui la niait ? Avant peu il prendrait parti. Il l’eût fait aussitôt,
et contre Montcalm, si Montcalm n’avait semblé intervenir. Il resta en
suspens, jusqu’à ce que son trouble fût apaisé. Mais, toutes les fois
qu’il traversait le vestibule, la forme de l’homme en marche hantait
son souvenir, plus flottante et disparue avant d’atteindre les plis
sombres de la tenture. C’était assez pour figer sur ses lèvres les
paroles qui auraient asservi sa destinée.
Cependant ses cours avaient repris ; le travail, le flot des
impressions quotidiennes, et surtout le contact enivrant d’Agnès
dissipèrent l’hallucination.
Comment n’eût-il pas écouté l’appel de la joie ? D’Agnès à lui,
chaque jour, il découvrait des consonances nouvelles. Il faisait le
tour de ses perfections ; de peur d’en être idolâtre, il y ajoutait les
nuances de quelques légers défauts. Son nonchaloir même devenait
un charme, le charme d’une vie latente qu’elle ne livrait qu’à demi.
Sa pensée, pour arriver jusqu’à l’air où elle vibrait, paraissait franchir
des limbes incertains.
« Je ne puis jamais exprimer ce que je sens ; et à quoi bon ? Qui
me comprendrait ? »
Il lui parlait d’elle-même ; il excusait ses mollesses de rêverie,
son goût un peu maladif du crépuscule, de l’automne, « des choses
qui finissent et qu’on laisse doucement mourir. »
Cette révélation d’un cœur féminin le ravissait ; il aurait voulu y
répondre en ouvrant tout à fait le sien. S’il la quittait, il croyait n’avoir
rien su lui dire. Mais, toujours, un je ne sais quoi l’arrêtait devant les
confidences décisives.
Au reste, avaient-ils besoin de parler ? « L’amour dit peu de
chose », observe un grand mystique [2] . La contempler lui suffisait.
Elle avait entrepris, pour l’offrir à Mme Élise, de broder un napperon.
Quand elle se penchait sur son ouvrage, il n’apercevait plus que son
front resserré sous ses bandeaux, avec une petite veine bleuâtre au
milieu, les deux creux d’ombre au-dessous des sourcils, la ligne
mince et nacrée du nez, les fronçures menues des lèvres, et les
doigts en mouvement qui tiraient ou poussaient l’aiguille brillante.
Elle s’appliquait. Elle prenait alors, sans la chercher, une pose de
graveleuse victime ; Antoinette prétendait reconnaître en elle « la fille
de Jephté ». Puis, tout d’un coup, elle redressait la tête ; si elle
souriait, il eût volontiers songé comme Dante en face de Béatrice :
« Son visage, quand elle sourit, ne se peut définir ni fixer dans la
mémoire. » Et la tendresse voilée de son regard l’ensorcelait.
[2] Saint Paul et la Croix.
Un fichu de soie noire, négligemment jeté autour de son cou,
relevait la finesse diaphane de sa peau. Quelquefois Jérôme
s’oubliait à rêver sur ces blancheurs entrevues. L’appétit d’un baiser
ne l’agitait pas encore. Toucher la main d’Agnès, en la revoyant, en
se séparant d’elle, cette volupté discrète comblait ses désirs.
Guérie de son entorse, elle s’était réinstallée dans sa chambre.
Celle de Jérôme se trouvait juste au-dessous. Malgré l’épaisseur du
tapis il l’entendait circuler, ouvrir son armoire, s’approcher de la
fenêtre. Il communiquait avec sa solitude. La nuit, dans le silence
attentif, il croyait, par instants, percevoir sa respiration.
En elle il aimait tout avec une ferveur éblouie. L’aurore lui
semblait plus vermeille ; les vibrations des cloches s’épandaient plus
célestes. Les arbres l’accueillaient d’un air fraternel. Les œillets du
jardin avaient changé d’odeur. Il trouvait Antoinette plus adorable,
parce qu’elle était la sœur d’Agnès. Il embrassait plus amicalement
sa mère. Il priait mieux. L’attente prestigieuse colorait même la
préparation de l’aride examen.
Chaque soir, il se disait : « A mon réveil, elle sera là. Demain, si
je veux, elle voudra. » Malgré tout, il ne se pressait pas de risquer
les trois mots fatidiques. D’autre part, elle se délectait si doucement
d’être aimée qu’elle ne brusquait point la conclusion. Elle demeurait
inquiète de pénétrer pourquoi il avait eu peur de lui-même. Mais,
lorsqu’elle rôdait autour de ce point obscur, il prenait une mine
grave ; elle sentait qu’en insistant elle l’eût froissé.
Ce fut Mme Élise qui décida un premier éclaircissement. Sur les
dispositions d’Agnès elle n’avait plus d’incertitude. Celles de Jérôme
restaient moins nettes. Elle le surprenait, vis-à-vis d’Agnès, perdu
d’extase ; bien des signes le dénonçaient amoureux. Il parlait
néanmoins de la jeune fille sur un ton désinvolte, comme d’une amie
de passage. Pourquoi cette affectation ?
Vers la fin d’une journée chaude, au milieu de mai, elle rentrait de
Paris ; Jérôme, à son insu, avait voyagé dans le même train ; ils
remontèrent ensemble ; sur la route où ils cheminaient seuls, elle lui
dit de la façon la plus simple :
— Agnès est très gentille. C’est dommage qu’on en ait fait une
princesse lointaine. Antoinette la dispense de tout effort. Elle ne sait
rien du ménage ; elle ne saurait pas commander. Si Antoinette
disparaissait, elle serait en ce monde comme une naufragée sur une
barque sans gouvernail et sans rames.
Elle se marierait, protesta Jérôme, visiblement contrarié. Son
mari la formerait ; elle est assez fine…
— Quel mari ? En serait-il capable ? A qui penses-tu pour elle ?
— A moi-même. Vous l’avez, j’en suis sûr, deviné. Et vous l’avez
bien voulu.
Tendrement, il insinua sa main sous le bras de sa mère. Il allait
justifier son choix ; Mme Élise, sans lui laisser le temps de poursuivre,
s’enquit d’une voix impatiente :
— Connaît-elle déjà tes sentiments ?
— Elle s’en doute. Ma bouche s’est tue ; mes yeux ont parlé.
— Eh bien ! je te demande une semaine encore ou deux de
silence. Après, nous verrons… Mais pourquoi ne m’as-tu pas dit
spontanément qu’elle te plaisait ? Il est donc trop vrai qu’une mère
n’a plus le cœur de son fils, dès qu’une autre le prend ?
Mme Élise se tenait au-dessus de la jalousie mesquine qui arme
de griffes certaines mères contre leur bru possible. Même, pour
sonder Jérôme, obtenir de lui une déclaration, elle avait exagéré ses
critiques. Un mois avant, les eût-elle énoncées ? Avec son besoin de
voir tout en beau, elle avait d’abord subi l’attrait d’Agnès ; depuis
qu’elle présumait l’avenir de Jérôme mêlé au sien, elle la considérait
d’un œil plus dégagé. Une sorte de brouillard lui avait caché ce que
pensait Jérôme ; de ce malaise Agnès portait le reproche. Dans
l’amertume de ses dernières paroles Jérôme discerna une curiosité
non satisfaite ; mais il ne voulait pas exposer tout son secret.
— Oh ! ma pauvre maman, dit-il en se pressant contre elle et lui
frôlant d’un baiser la joue, que vous êtes injuste ! Je ne vous ai
jamais tant aimée !
Agnès les vit rentrer tous deux, d’un pas beaucoup plus lent que
d’ordinaire ; elle soupçonna qu’en chemin s’étaient échangées des
choses importantes. Mme Élise s’efforça de reprendre sa figure
habituelle ; une réserve, une préoccupation perçaient au travers de
son amabilité ; Jérôme s’observait davantage, maintenant que sa
mère savait.
Agnès ressentit dans son amour une soudaine insécurité ; ses
espérances lui parurent fragiles comme ces châteaux de sable
qu’Antoinette enfant bâtissait avec elle sur la petite plage du
Veillons ; et un coup de vent les renversait. Quel gage d’attachement
tenait-elle de Jérôme ? Pourquoi l’obstination de ses réticences ?
Elle défaillit devant l’hypothèse qu’elle se leurrait peut-être, comme
une âme croyante qui se demanderait brusquement : « Le Dieu que
j’invoque m’entend-il ? »
Cette angoisse la brisa si fort qu’elle ne put, de tout le dîner,
articuler une parole. Aussitôt après elle se retira, mettant sa tristesse
sur le compte d’une migraine abominable. Antoinette, un moment
plus tard, monta dans sa chambre.
La lune presque pleine en éclairait à demi l’obscurité. Agnès,
étendue sur son lit, dans sa chemise flottante, les mains croisées
sous sa nuque, avait l’air d’une statue pâle couvrant le marbre d’un
tombeau. Elle regardait le globe ardent de la lune s’élever juste en
face de sa fenêtre ouverte, s’approcher comme s’il voulait entrer.
Elle ne tourna point la tête vers sa sœur ; Antoinette se pencha sur
elle, et la baisant au front, murmura :
— Tu souffres bien, ma chérie ?
— Oui, laisse-moi. J’ai besoin d’être seule, de dormir…
— Va, reprit Antoinette, je te comprends trop. Tu te ronges
d’idées funestes. Tu as peur d’être heureuse, quand le bonheur vient
à ta porte…
Agnès s’était redressée ; accoudée sur son traversin, elle
dévisagea sa sœur anxieusement :
— Que sais-tu ? On t’a dit quelque chose ?
— Non, rien du tout. Mais…
— Alors, tais-toi, et oublie-moi dans mon néant. Si tu as vu le
bonheur à ma porte, avertis-le qu’il se presse d’entrer. Je suis lasse
de l’attendre.
— Oh ! reprit Antoinette, malgré ton silence, je sais depuis
longtemps que tu aimes Jérôme, et je suis sûre aussi qu’il t’aime.
Sois donc patiente. Il n’y a qu’un amour où le Bien-Aimé ne tarde
jamais, et encore ?…
Agnès chiffonnait la dentelle de son oreiller ; comme agacée de
cette clairvoyance, elle interrompit :
— Tu vois avec la candeur de tes illusions ses sentiments. S’il
m’aimait en vérité, il me le dirait ; ce serait plus fort que lui. Ou bien,
c’est qu’un obstacle, un grave obstacle l’enchaîne. S’est-il engagé
ailleurs ? Sa mère s’oppose-t-elle ?
— Je ne le crois pas. Elle a pour toi une vraie tendresse.
— Dis qu’elle l’a eue. J’ai été avec elle trop insouciante, trop
franche. Je me suis trop montrée telle que je suis. T’en souviens-tu ?
Vers la fin du carême, comme on parlait de confession, je lui ai fait
étourdiment cet aveu : « Se confesser, quelle pénitence ! Se mettre à
genoux sur du bois dur, sous le rideau, dans un coin noir où l’on
étouffe, devant un prêtre qu’on ne voit pas, répéter, entendre des
ritournelles qui ne varient guère, et sortir absoute avec la certitude
qu’on refera les mêmes péchés, est-ce la peine ? » J’ai senti, au
sérieux de sa réponse, que mon état d’esprit l’inquiétait. Je l’amuse,
elle m’aime un peu. Mais elle ne met en moi qu’une moitié de
confiance. Elle a raison peut-être ; je ne suis propre à rien qu’à
réunir en un seul cœur les misères de beaucoup…
Elle s’abandonna, dans un sanglot, entre les bras d’Antoinette.
Celle-ci, de son mieux, la réconforta ; elle tenterait d’amener Jérôme
à définir ses intentions.
— Jusque-là, jette-toi en Dieu ; sois humble. Et ne te laisse plus
tomber, comme ce soir, à la façon d’une mouche morte. Jérôme
aime la force ; sa mère est une femme forte. Sois comme elle.
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade

Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.

Let us accompany you on the journey of exploring knowledge and


personal growth!

textbookfull.com

You might also like