11.3 final方法

1、定义为final的方法不能被重写。
  a、将方法定义为final类型可以防止子类修改该类的定义与实现方式,同时定义为final方法的执行效率要高于非final方法。
  b、如果一个父类的某个方法值为private修饰符,则定义为private的方法隐式被指定为final类型,这样无须将一个定义为private的方法在定义为final类型。
  c、例如下面的语句(存在画蛇添足的情况):
    private final void test(){
.    ..//省略一些程序代码
    }

例子11.6

 1 package com.lzw;
 2 
 3 class Parents{
 4     private final void doit() {
 5         System.out.println("父类.doit()");
 6     }
 7     final void doit2() {
 8         System.out.println("父类.doit2()");
 9     }
10     public void doit3() {
11         System.out.println("父类.doit3()");
12     }
13 }
14 
15 class Sub extends Parents{
16     public final void doit() {        //在子类中定义一个doit()方法
17         System.out.println("子类.doit()");
18     }
19     
20 //    final void doit2() {
21 //        System.out.println("子类.doit2()");
22 //    }
23     
24     public final void doit3() {        //在子类中定义一个doit()方法
25         System.out.println("子类.doit3()");
26     }
27 }
28 
29 public class FinalMethod {
30     public static void main(String[] args) {
31         Sub s = new Sub();
32         s.doit();  //调用doit()方法
33         
34         Parents p = s;  //执行向上转型
35 //        p.doit();        //不能调用private方法
36         p.doit2();
37         p.doit3();
38     }
39 }
View Code

 

转载于:https://www.cnblogs.com/studycode/p/9534931.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值