溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

java中的面向?qū)ο髮嵗v解

發(fā)布時間:2021-08-05 11:15:08 來源:億速云 閱讀:110 作者:chen 欄目:開發(fā)技術(shù)

這篇文章主要介紹“java中的面向?qū)ο髮嵗v解”,在日常操作中,相信很多人在java中的面向?qū)ο髮嵗v解問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”java中的面向?qū)ο髮嵗v解”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

目錄
  • 一、繼承

    • 示例:

  • 二、重載

    • 三、接口

      • 1、接口與類相似點:

      • 2、接口與類的區(qū)別:

      • 3、語法

    • 四、枚舉

      • 1、定義

      • 2、迭代枚舉元素

      • 3、在 switch 中使用枚舉類


    一、繼承

    繼承就是子類繼承父類的特征和行為,使得子類對象(實例)具有父類的實例域和方法,或子類從父類繼承方法,使得子類具有父類相同的行為

    本章就以人、學(xué)生、老師作為例子。學(xué)生和老師都繼承人這個對象,都有人的特征和行為,人就是父類,老師和學(xué)生就是子類

    示例:

    人類:

    package com.zhouzy.base.t7;
    public class Person {
    	private String name;
    	private String sex;
    	private int age;
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	public String getSex() {
    		return sex;
    	}
    	public void setSex(String sex) {
    		this.sex = sex;
    	}
    	public int getAge() {
    		return age;
    	}
    	public void setAge(int age) {
    		this.age = age;
    	}
    	public void action(Person p){
    		System.out.println("這是人的行為");
    		System.out.println("person的名字:"+p.getName());
    	}
    }

    學(xué)生:

    package com.zhouzy.base.t7;
    public class Student extends Person{
    	/**
    	 * 這就是重寫
    	 */
    	@Override
    	public void action(Person p){
    		System.out.println("這是學(xué)生的行為");
    		System.out.println("Student的名字:"+p.getName());	//繼承了父類的屬性
    	}
    }

    老師:

    package com.zhouzy.base.t7;
    public class Teacher extends Person{
    	@Override
    	public void action(Person p){
    		System.out.println("這是老師的行為");
    		System.out.println("Teacher的名字:"+p.getName());
    	}
    }

    測試:

    package com.zhouzy.base.t7;
    import org.junit.Test;
    public class ObjectTest {
    	@Test
    	public void extendsTest(){
    		Person p1 = new Student();
    		p1.setName("張三");
    		p1.action(p1);
    		Person p2 = new Teacher();
    		p2.setName("劉老師");
    		p2.action(p2);
    	}
    }

    結(jié)果:

    這是學(xué)生的行為
    Student的名字:張三
    這是老師的行為
    Teacher的名字:劉老師

    二、重載

    重載是在一個類里面方法名相同,但返回值或者參數(shù)類型或個數(shù)不同,比如

    private String testOverload(){
    		return "Overload";
    	}
    	private String testOverload(String param){
    		return "Overload";
    	}
    	private void testOverload(int param){
    		System.out.println(param);
    	}
    	private String testOverload(String param1,String param2){
    		return "Overload";
    	}

    重寫和重載是java多態(tài)的一種體現(xiàn)

    三、接口

    接口(英文:Interface),在JAVA編程語言中是一個抽象類型,是抽象方法的集合,接口通常以interface來聲明。一個類通過繼承接口的方式,從而來繼承接口的抽象方法。

    接口并不是類,編寫接口的方式和類很相似,但是它們屬于不同的概念。類描述對象的屬性和方法。接口則包含類要實現(xiàn)的方法。

    除非實現(xiàn)接口的類是抽象類,否則該類要定義接口中的所有方法。

    接口無法被實例化,但是可以被實現(xiàn)。一個實現(xiàn)接口的類,必須實現(xiàn)接口內(nèi)所描述的所有方法,否則就必須聲明為抽象類。另外,在 Java 中,接口類型可用來聲明一個變量,他們可以成為一個空指針,或是被綁定在一個以此接口實現(xiàn)的對象。

    1、接口與類相似點:

    一個接口可以有多個方法。

    接口文件保存在 .java 結(jié)尾的文件中,文件名使用接口名。

    接口的字節(jié)碼文件保存在 .class 結(jié)尾的文件中。

    接口相應(yīng)的字節(jié)碼文件必須在與包名稱相匹配的目錄結(jié)構(gòu)中。

    2、接口與類的區(qū)別:

    接口不能用于實例化對象。

    接口沒有構(gòu)造方法。

    接口中所有的方法必須是抽象方法,Java 8 之后 接口中可以使用 default 關(guān)鍵字修飾的非抽象方法。

    接口不能包含成員變量,除了 static 和 final 變量。

    接口不是被類繼承了,而是要被類實現(xiàn)。

    接口支持多繼承。

    3、語法

    [可見度] interface 接口名稱 [extends 其他的接口名] {
            // 聲明變量
            // 抽象方法
    }

    示例:

    package com.zhouzy.base.t2;
    public interface Car {
    	public void move();
    }

    實現(xiàn)接口的類,必須實現(xiàn)接口里面的方法

    package com.zhouzy.base.t2;
    public class Baoma implements Car{
    	@Override
    	public void move() {
    		System.out.println("我是寶馬,時速最高200公里每小時,牛擦吧!");
    	}
    }

    四、枚舉

    1、定義

    Java 枚舉是一個特殊的類,一般表示一組常量,比如一年的 4 個季節(jié),一個年的 12 個月份,一個星期的 7 天,方向有東南西北等。

    Java 枚舉類使用 enum 關(guān)鍵字來定義,各個常量使用逗號 , 來分割。

    例如定義一個顏色的枚舉類。

    enum Color 
    { 
        RED, GREEN, BLUE; 
    }

    示例:

    enum Color 
    { 
        RED, GREEN, BLUE; 
    } 
    public class Test 
    { 
        // 執(zhí)行輸出結(jié)果
        public static void main(String[] args) 
        { 
            Color c1 = Color.RED; 
            System.out.println(c1); 
        } 
    }

    結(jié)果:

    RED

    2、迭代枚舉元素

    enum Color 
    { 
        RED, GREEN, BLUE; 
    } 
    public class MyClass { 
      public static void main(String[] args) { 
        for (Color myVar : Color.values()) {
          System.out.println(myVar);
        }
      } 
    }

    結(jié)果:

    RED
    GREEN
    BLUE

    3、在 switch 中使用枚舉類

    enum Color 
    { 
        RED, GREEN, BLUE; 
    } 
    public class MyClass {
      public static void main(String[] args) {
        Color myVar = Color.BLUE;
        switch(myVar) {
          case RED:
            System.out.println("紅色");
            break;
          case GREEN:
             System.out.println("綠色");
            break;
          case BLUE:
            System.out.println("藍(lán)色");
            break;
        }
      }
    }

    結(jié)果:

    藍(lán)色

    到此,關(guān)于“java中的面向?qū)ο髮嵗v解”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

    向AI問一下細(xì)節(jié)

    免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

    AI