中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

java基礎-抽象類和抽象方法

發布時間:2020-07-04 23:45:38 來源:網絡 閱讀:206 作者:尚學堂官網 欄目:編程語言

java基礎-抽象類和抽象方法

1.1抽象類

什么是抽象類?
使用abstract修飾的類稱為抽象類

public abstract class Person {
}
抽象類的特征
1)抽象類可以創建對象嗎?不可以
public class TestPerson {
    public static void main(String[] args) {
      Person p=new Person() ;|
  }
}
2)抽象類可不可以有構造方法? 可以
public abstract class Person {
    public Person(){
        System.out.println("Person類中的無參構造方法");
    }
}

抽象類中構造方法的作用,是提供給子類調用

package com.bjsxt.abstractpro;

public class Student extends Person {
    public Student(){
        super();//調用直接父類的無參構造方法
        System.out.println("Student類的無參構造方法");
    }
}
public class TestPerson {
    public static void main(String[] args) {
        //Person p=new Person();
        Student stu=new Student();
    }
}

運行效果圖
java基礎-抽象類和抽象方法

3)抽象類中可以包含哪些成員?

成員變量,成員方法,靜態方法,構造方法,final修飾的方法,抽象方法

public abstract class Person {
    //(1)成員變量/實例變量/屬性
    private String name;//姓名
    //(2)成員方法/實例方法
    public void info(){
        System.out.println("大家好,我叫"+name);
    }
    //(3)靜態方法
    public static void show(){

    }
//(4)構造方法
    public Person(){
        System.out.println("Person類中的無參構造方法");
    }
    //(5)final修飾的方法,只能被子類調用,不允許被子類重寫
    public final void fun(){

    }
}

1.2抽象方法

什么是抽象方法?
使用abstract修飾的方法稱為抽象方法

public abstract class Person {
    public abstract void print();
}

抽象方法的特征

1)抽象方法不允許有方法體,只能以分號“;”結尾

2)抽象方法只能聲明在抽象類中 (含有抽象方法的類必須是抽象類)
3)抽象類中可以包含0個或多個抽象方法
4)抽象方法必須被子類實現
5)如果子類不能實現父類中的抽象方法,那么子類也必須是抽象類
總結:abstract可以修飾類和方法

1.3什么情況下使用抽象方法和抽象類

通過抽象類,可以避免子類設計的隨意性。通過抽象類,我們就可以做到嚴格限制子類的設計,使子類之間更加通用。(程序的可擴展和可維護性)
什么情況下使用抽象類?父類的名稱比較抽象,創建對象無意義。
Animail動物類 –》abstract, abstract shout()
每一種運物 ,分別實現發聲的方法

package com.bjsxt.abstractdemo;

public abstract class Animal {//動物
    public abstract void shout();//抽象方法
}
class Dog extends Animal{

    @Override
    public void shout() {
        System.out.println("小狗,汪汪叫..........");
    }

}
class Cat extends Animal{

    @Override
    public void shout() {
        System.out.println("小貓,喵喵叫................");

    }

}
package com.bjsxt.abstractdemo;
public class TestAnimal {
    public static void main(String[] args) {
        //父類引用指向子類對象
        Animal dog=new Dog();
        Animal cat=new Cat();
        //調用相同的方法
        dog.shout();
        cat.shout();
        //運行的結果,各不相同(每個子類實現之后的結果)
    }
}

運行結果;
java基礎-抽象類和抽象方法

都看到這里了,是不是想學習呢?
點擊這里,進入學習吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

绥滨县| 阿克苏市| 武城县| 武定县| 纳雍县| 南江县| 华坪县| 定安县| 乌什县| 宁阳县| 丹寨县| 旌德县| 吉木萨尔县| 铁岭市| 石嘴山市| 始兴县| 朝阳区| 黄石市| 察哈| 泰和县| 沾益县| 定州市| 江西省| 东莞市| 大新县| 广东省| 炉霍县| 台山市| 西昌市| 定陶县| 闻喜县| 循化| 宿松县| 宁武县| 耿马| 玉林市| 鸡东县| 博湖县| 浦县| 西丰县| 宜昌市|