java中是否有任何性能下降,因为扩展了“的类”;否";原因?
我有一个Vector3i类,它在很多情况下都很有用,但我发现自己扩展了它,以使用类型系统来防止bug 例如,我可能有一个“以自我为中心”的向量3i,它是世界上某个对象的局部向量,还有一个世界坐标向量3i 这两者在没有转换的情况下自然是不相容的,对彼此来说毫无意义 这将是一个很好的使用环境,但是我正在扩展这个类,并且没有添加新的功能java中是否有任何性能下降,因为扩展了“的类”;否";原因?,java,type-conversion,jvm-hotspot,hungarian-notation,Java,Type Conversion,Jvm Hotspot,Hungarian Notation,我有一个Vector3i类,它在很多情况下都很有用,但我发现自己扩展了它,以使用类型系统来防止bug 例如,我可能有一个“以自我为中心”的向量3i,它是世界上某个对象的局部向量,还有一个世界坐标向量3i 这两者在没有转换的情况下自然是不相容的,对彼此来说毫无意义 这将是一个很好的使用环境,但是我正在扩展这个类,并且没有添加新的功能 考虑到JVM/热点优化,我是否会导致性能损失?继承是一个强大的工具,但这种能力是有代价的。继承本身有很多陷阱和问题。特别是,如果不小心实现,它会破坏封装并导致脆弱的代
考虑到JVM/热点优化,我是否会导致性能损失?继承是一个强大的工具,但这种能力是有代价的。继承本身有很多陷阱和问题。特别是,如果不小心实现,它会破坏封装并导致脆弱的代码 Java中的继承机制已经持续发展了15多年。你可以相信它是快速和高效的。当您的数据模型需要继承时,没有与性能相关的重要原因来传递继承
对于您的情况,通过组合而不是继承来表示功能可能更有意义(换句话说,不要让ClassB扩展ClassA,而是让ClassA成为ClassB中的实例字段,然后将方法调用委托给封装的对象)。你至少应该考虑一下。与继承相比,组合生成的代码更健壮、更不脆弱。请记住,Java IDE已经消除了匈牙利符号的许多所谓优势,因为Java是一种可以推理的语言(与C/C++不同)。可以推理吗?我不明白,或者你是说java的类型系统?主要是类型系统。IDE可以明确地说出某个变量/方法返回的类型。