继承过程中final的用法

有时候,可能希望阻止人们利用某个类定义子类。不允许扩展的类被称为final类。如果再定义类的时候使用了final修饰符就表明这个类是final类,例如:假设希望阻止人们定义Exployee类的子类,就可以在定义这个类的时候,使用final修饰符来声明。声明格式如下所示:

public final class Exective extends Manager
{
    ...

}

   类中特定的方法也可以声明为final。如果这样做,子类就不能覆盖这个方法(final类中的所有方法自动的成为final方法)

public class Employee
{
    ...
    public final String getName()
    {
        return
    }
    ...
}

注释:前面曾经说过,域也可以被声明为final 。对于final 域来说,构造对象之后就不允许改变他们的值了,不过,如火箭一个类声明为final ,只有其中的方法自动的成为final 而不包括域

        将方法或类声明为final主要目的是:确保他们不会再子类中改变语义,例如:Calendar类中的geiTime和setTime 方法都声明为final 这表明Calender类的设计者负责实现Date类与日历之间的转换,而不允许子类处理这些问题,同样的String类也是final 类,这意味着不允许任何人定义String的子类。换言之,如果有一个String的引用,他引用的一定是String对象,而不可能是其他类的对象。

猜你喜欢

转载自blog.csdn.net/weixin_42630877/article/details/81141816