This.
If the question is regarding Interface vs casting: They are not the same. Interfaces are usually use when communication is needed across many differente classes. Casting is to know the reference you have is of a specific type or inherited from to do stuff with.
In both cases a reference is still needed to either check if it implements an interface (a type of casting if you will) and to check if its of a specific type (cast).
Using any of the Get nodes no matter how often won’t prevent anything from getting destroyed. It just doesn’t work like that.
This post explains hard references better than I ever could: Blueprints can develop a hard reference dependancy chain, but C++ derived classes do not? - #10 by Ari_Epic
Please feel free to ask anything else.