1 覆盖
一个实例方法可以覆盖其超类中可以访问到的具有相同签名的所有实例方法,从而能够使用动态分配机制。换句话说就是vm基于运行期的类型来选择要调用的复写方法。覆写是面向对象编程技术的基础。
class Base{ public void f(){} } class Derived extends Base{ public void f(); }
2 隐藏
一个字段,静态方法或者成员类型可以分别隐藏在其超类中可以访问到的具有相同名字(对于方法而言就是相同的方法签名)的所有字段、静态方法或成员类型,隐藏一个成员将阻止其被继承。
class Base{ public static void f(){} } class Derived extends Base{ public static void f(){}//隐藏了Base.f() }
3 重载
在某个类中的方法可以重载另一个方法,只要他们具有相同的名字和不同的签名。由调用所指定的重载方法是在编译期选定的。
class CircuitBreaker{ public void f(int i){}//int overloading public void f(string s){}// string overloading }
时间: 2024-11-06 10:01:08