As we all know that an external account can send a transaction to smart contract. But I'm confused when it comes to how contracts talk with each other.
Contracts that exist within the global scope of Ethereum’s state can talk to other contracts within that same scope. The way they do this is via “messages” or “internal transactions” to other contracts. We can think of messages or internal transactions as being similar to transactions, with the major difference that they are NOT generated by externally owned accounts. Instead, they are generated by contracts. They are virtual objects that, unlike transactions, are not serialized and only exist in the Ethereum execution environment.1
I fully understand what it mean in the quote. But my question is HOW ? Are there some examples of smart contracts in Solidity show how contracts communicate with each other via "message"?