歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Java抽象、接口 和final

Java抽象、接口 和final

日期:2017/3/1 9:07:07   编辑:Linux編程

抽象

一、抽象類:不知道是具體什麼東西的類。 abstract class 類名

1.抽象類不能直接new出來。

2.抽象類可以沒有抽象方法。

public abstract class USB {   //抽象類

    //兩個抽象方法,抽象類中也可以不寫抽象方法
    public abstract void qidong();   
    public abstract void tingzhi();//抽象方法不用寫{}
} 

3.抽象類中,可以有抽象方法,也可以有非抽象方法。抽象類中還可以有成員變量。

4.派生類中,可以不實現某些抽象方法,但派生類必須要聲明為抽象類。

public abstract class Shubiao extends USB{
    
    public void qidong(){
        System.out.println("鼠標運行");
    }

    //父類的tingzhi()的方法沒重寫 ,子類也要改成abstract抽象的。
}

二、抽象方法:不知道具體是干什麼事情的方法。abstract 返回類型 函數名(形參);

1.抽象方法沒有函數體。

2.有抽象方法的類必須是抽象類。

遇到抽象類,兩種用法:

1.找找有沒有它的派生類,用它的派生類。

2.自己寫一個類,派生自這個抽象類。

package com.itnba.may.Demo1229;

public abstract class USB {   //抽象類
    //兩個抽象方法
    public abstract void qidong();   
    public abstract void tingzhi();
}

接口

可以理解為一種特殊的抽象類。裡面只有常量和抽象方法(不需要寫abstract)。

接口可以多實現(繼承),抽象類只能是單位繼承。

定義:

interface 接口名 [extends 父接口列表]{
  final 類型 常量名=值;
  public void 方法名(形參);
}

public interface USB {   //定義一個接口

    public void qidong();   
    public void tingzhi();
}

接口的實現:

[abstract] class 類名 extends 父類 implements 接口名,接口名,....{

public class Shubiao implements USB{
    
    @Override
    public void qidong(){
        System.out.println("鼠標運行");
    }
  
    @Override
    public void tingzhi() {
        System.out.println("鼠標拔出了");
    }
    //如果有接口的方法沒重寫 ,類要改成abstract抽象的。
}

接口定義的時候:

1.接口盡量的小,功能太復雜的。——接口分離原則。

2.接口定義的時候,接口名子,盡量是形容詞,或者是描述性質的詞。

final 的幾種修飾用法

final可以修飾成員變量,成員方法,類。

1.final修飾類:此類不能被繼承。

2.final修飾成員變量:可以當常量來用。

3.final修飾方法:不能被子類的方法覆蓋(重寫),但可以被繼承。

Copyright © Linux教程網 All Rights Reserved