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中类的继承的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ModbusTCP协议通讯设备如何快速接
- 下一篇: rbac java框架_jCasbin: