contract Parent {
function foo() internal pure virtual returns (string memory) {
return "foo";
}
// error! private functions cannot be overriden, so no point in making them virtual!
function bar() private pure virtual returns (string memory) {
return "bar";
}
}