I found the following case below in a book.
case 1:
contract sample1{
function a() returns (int b);
}
contract sample2{
function myFunc()
{
sample1 s = sample1(0xd5f9d8d94886e70b06e474c3fb14fd43e2f23970);
//without abstract contract this wouldn't have compiled
s.a();
}
}
why use "0xd5f9d8d94886e70b06e474c3fb14fd43e2f23970"?
I found the following second case in the Solidity docs.
case 2:
contract Feline {
function utterance() returns (bytes32);
}
contract Cat is Feline {
function utterance() returns (bytes32) { return "miaow"; }
}
Feline is an abstract contract, and cat inherits from Feline.
What is the difference in case 1 and case 2?
Do you need to inherit to be able to use an abstract contract?