This statement is incorrect with respect to your code (no inheritance).
Creating an instance implies deploying (constructing an inatance of) the contract.
In Solidity, for example, it can be done via the new keyword.
So again, the statement above is incorrect with respect to your code.
Same goes for this one...
Lastly, your portrayed attack is so mind-bogglingly unclear, it actually took me several minutes to be able to figure it out (more precisely, figure out that there is no attack being illustrated here whatsoever).
There are two contracts in your example - Elevator and Attack.
Let's assume that each one of these contracts has several users, i.e., each contract can be ascribed with several different accounts which interact with it.
Users of the Attack contract can be both externally-owed accounts (aka wallets) and other contracts.
Users of the Elevator contract can only be other contracts which implement function isLastFloor.
In fact, the Attack contract is by itself a user of the Elevator contract.
But within all of these users - who is the attacker and who is the attackee?
In you example, it seems that you've attempted to illustrate a scheme where users of the Attack contract are attackers, and users of the Elevator contract are attackees.
But I cannot quite how any user here is able to attack any other user.
Ultimately, given an instance of the Elevator contract, every user of that instance needs to implement function isLastFloor according to their own requirements.
So if the requirements of John Doe are:
function isLastFloor(uint) public returns (bool) {
count++;
return count > 1;
}
Then this is the behavior that John Doe will get when interacting with that instance of the Elevator contract.
Such behavior might look weird, but hey - this is what John Doe wants, so this is what John Doe gets.
Let's take a more sensible user, named Jane Doe, whose requirements are:
function isLastFloor(uint) public view returns (bool) {
return count == 42;
}
John and Jane are both interacting with the same instance of the Elevator contract.
But how exactly does the interaction of John with that instance impact the behavior that Jane experiences during her interaction with it?
Whatever impact John's usage has on Jane's usage, any other user of that Elevator instance can just as well inflict.
Namely, different users of the same Elevator instance can "force the elevator up and down", interfering with each other's expectation of it.
But that feature (or flaw) is built-in as part of the Elevator contract.
They can all implement the exact same function implemented by Jane, and still end up interfering with each other.