日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java中的类的继承_Java中类的继承

發布時間:2023/12/20 java 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java中的类的继承_Java中类的继承 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、子類繼承父類的寫法

class 子類名 extends 父類名{}

復制代碼

二、子類與父類之間的關系

①父類可以有個子類

②子類只能有一個父類

③子類會繼承父類的一些屬性和方法

④子類在創建對象時,會先調用父類的構造方法6

三、四大權限修飾符

繼承非繼承

同一個包不同包同一個包不同包

private????

缺省????

protected????

public????

上面的對錯僅代表能否調用。

其實子類繼承父類之后,創建子類對象,會對父類無法調用的屬性也分配空間。但是無法調用。

四、instanceof關鍵字

對象 instanceof 類名

如果此對象是該類的對象,或者是該類的子類的對象,則返回true

否則返回false

復制代碼

如圖:Person為Teacher 和 Student的父類

現在創建一個zhang為Person的對象

創建一個peng為Teacher的對象

創建一個liu為Student的對象

問:

zhang instanceof Person

zhang instanceof Teacher

peng instanceof Teacher

peng instanceof Person

liu instanceof Teacher

五條表達式結果如何?

復制代碼

五、this和super關鍵字

①this代表當前類

②super代表父類

用this()和super()可以分別調用子類和父類的空參構造器

復制代碼

如圖:Person為Teacher 和 Student的父類

問:在Student這個類中,this.id 代表的是?super.id代表的是?

復制代碼

六、成員變量的隱藏和方法的重寫

1、成員變量的隱藏

public class Person{

int age;

}

public class Student extends Person{

int age;//String age;

}

復制代碼

2、方法的重寫(區別于方法的重載)

public class Person{

public void walk() { System.out.println("人走路!");}

}

public class Student extends Person{

public void walk(){ System.out.println("學生走路");}

}

注意:子類重寫的方法的權限修飾符的權限大小不能小于父類。

如:Person的walk方法是public,那么子類Student的walk方法只能是public,而不能是其他。

復制代碼

七、final關鍵字

1、final類

public final class Student{}

問:Student能否被繼承?

復制代碼

2、final方法

public final void walk(){}

問:walk方法可以被繼承嗎?

walk方法可以被重寫嗎?

復制代碼

3、final變量(常量)

public final double PI = 3.1415926;

問:PI可以被修改嗎?

復制代碼

八、上轉型對象

1、上轉型對象不能操作子類新增的成員變量,不能調用子類新增方法

2、上轉型對象可以調用被繼承的變量,以及被隱藏的變量。也可以調用被繼承的方法和被重寫的方法。

如圖:Person是Student的父類。

Person p;

//p = new Person();

p = new Student();

問:

p.id調用的是哪個類的id?

p.walk()調用的是哪個類的walk?

復制代碼

九、abstract關鍵字(抽象)

1、abstract類

abstract class A{}

復制代碼

2、abstract方法

abstract void walk();//只有聲明,沒有方法體

復制代碼

3、注意點:

①abstract 類中可以有abstract方法,也可以有非abstract方法

②abstract方法一定存在于abstract類中,且abstract方法沒有方法體。即沒有花括號{},這一部分

③如果一個非abstrac類繼承了abstract類,那么就需要重寫abstract類中的abstract方法,并加上方法體。如果是一個abstract類繼承了abstract類,那其中的abstract方法可重寫可不重寫。

④abstract類不能用于聲明對象。

⑤abstract類可以聲明上轉型對象。

問:

1、為什么非抽象類繼承抽象類一定要重寫抽象方法?

2、abstract class A{}

abstract class B extends B{}

A a = new B();//對嗎?

3、abstract可以和final一起使用嗎?

復制代碼

十、多態

public abstract class Animal{

abstract public void yell();

}

public class Dog extends Animal{

public void yell() { System.out.println("汪");}

}

public class Cat extends Animal{

public void yell() { System.out.println("喵");}

}

復制代碼

總結

以上是生活随笔為你收集整理的java中的类的继承_Java中类的继承的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。