Excuse me, could you please clarify the distinction between the terms "virtual" and "interface" as they are used in the context of Apex? I understand that Apex is a programming language or a framework, but I'm a bit confused about how these two concepts differ and how they relate to each other within Apex. Specifically, how does the concept of virtuality play into Apex's functionality, and how does the interface factor into the overall architecture? I'd appreciate any clarification you could provide.