加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

09-01 Java final,多态,抽象类,接口

发布时间:2020-12-14 06:09:49 所属栏目:Java 来源:网络整理
导读:final span style="color: #ff0000;" 特点: final可以修饰类,该类不能被继承。 final可以修饰方法,该方法不能被重写。(覆盖,复写) final可以修饰变量,该变量不能被重新赋值。因为这个变量其实常量。 span style="color: #ff0000;"gt;常量: A:字面值常

final

<span style="color: #ff0000;"> 特点:
final可以修饰类,该类不能被继承。
final可以修饰方法,该方法不能被重写。(覆盖,复写)
final可以修饰变量,该变量不能被重新赋值。因为这个变量其实常量。

<span style="color: #ff0000;"&gt;常量:
    A:字面值常量
        "hello",10,true
    B:自定义常量
        final int x = 10;

<span style="color: #008000;">*/

<span style="color: #008000;">//<span style="color: #008000;">final class Fu <span style="color: #008000;">//<span style="color: #008000;">无法从最终Fu进行继承

<span style="color: #0000ff;">class<span style="color: #000000;"> Fu {
<span style="color: #0000ff;">public <span style="color: #0000ff;">int num = 10<span style="color: #000000;">;
<span style="color: #0000ff;">public <span style="color: #0000ff;">final <span style="color: #0000ff;">int num2 = 20<span style="color: #000000;">;

</span><span style="color: #008000;"&gt;/*</span><span style="color: #008000;"&gt;
public final void show() {

}
</span><span style="color: #008000;"&gt;*/</span><span style="color: #000000;"&gt;

}

<span style="color: #0000ff;">class Zi <span style="color: #0000ff;">extends<span style="color: #000000;"> Fu {
<span style="color: #008000;">//<span style="color: #008000;"> Zi中的show()无法覆盖Fu中的show()
<span style="color: #0000ff;">public <span style="color: #0000ff;">void<span style="color: #000000;"> show() {
num = 100<span style="color: #000000;">;
System.out.println(num);

    </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;无法为最终变量num2分配值
    </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;num2 = 200;</span>

<span style="color: #000000;"> System.out.println(num2);
}
}

<span style="color: #0000ff;">class<span style="color: #000000;"> FinalDemo {
<span style="color: #0000ff;">public <span style="color: #0000ff;">static <span style="color: #0000ff;">void<span style="color: #000000;"> main(String[] args) {
Zi z = <span style="color: #0000ff;">new<span style="color: #000000;"> Zi();
z.show();
}
}

final修饰变量的特点:

age = 10<span style="color: #0000ff;">class<span style="color: #000000;"> FinalTest {
<span style="color: #0000ff;">public
<span style="color: #0000ff;">static
<span style="color: #0000ff;">void
<span style="color: #000000;"> main(String[] args) {
<span style="color: #008000;">//<span style="color: #008000;">局部变量是基本数据类型
<span style="color: #0000ff;">int x = 10<span style="color: #000000;">;
x = 100<span style="color: #000000;">;
System.out.println(x);
<span style="color: #0000ff;">final <span style="color: #0000ff;">int y = 10<span style="color: #000000;">;
<span style="color: #008000;">//<span style="color: #008000;">无法为最终变量y分配值
<span style="color: #008000;">//<span style="color: #008000;">y = 100;
<span style="color: #000000;"> System.out.println(y);
System.out.println("--------------"<span style="color: #000000;">);

    </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;局部变量是引用数据类型</span>
    Student s = <span style="color: #0000ff;"&gt;new</span><span style="color: #000000;"&gt; Student();
    System.out.println(s.age);
    <span style="color: #ff0000;"&gt;s.age </span></span><span style="color: #ff0000;"&gt;= 100</span><span style="color: #000000;"&gt;<span style="color: #ff0000;"&gt;;//对象的堆内存是可以改变的</span>
    System.out.println(s.age);
    System.out.println(</span>"--------------"<span style="color: #000000;"&gt;);

    </span><span style="color: #0000ff;"&gt;final</span> Student ss = <span style="color: #0000ff;"&gt;new</span><span style="color: #000000;"&gt; Student();
    System.out.println(ss.age);
    ss.age </span>= 100<span style="color: #000000;"&gt;;
    System.out.println(ss.age);

    </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;重新分配内存空间
    </span><span style="color: #ff0000;"&gt;//无法为最终变量ss分配值(地址值)</span>
    ss = <span style="color: #0000ff;"&gt;new</span><span style="color: #000000;"&gt; Student();
}

}

final修饰变量的初始化时机

<span style="color: #0000ff;"&gt;int</span><span style="color: #000000;"&gt; num;
</span><span style="color: #0000ff;"&gt;final</span> <span style="color: #0000ff;"&gt;int</span><span style="color: #000000;"&gt; num2;

{
    </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;num2 = 10;</span>

<span style="color: #000000;"> }

</span><span style="color: #0000ff;"&gt;public</span><span style="color: #000000;"&gt; Demo() {
    num </span>= 100<span style="color: #000000;"&gt;;
    </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;无法为最终变量num2分配值</span>
    num2 = 200<span style="color: #000000;"&gt;;
}

}

<span style="color: #0000ff;">class<span style="color: #000000;"> FinalTest2 {
<span style="color: #0000ff;">public <span style="color: #0000ff;">static <span style="color: #0000ff;">void<span style="color: #000000;"> main(String[] args) {
Demo d = <span style="color: #0000ff;">new<span style="color: #000000;"> Demo();
System.out.println(d.num);
System.out.println(d.num2);
}
}

?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读