Java程式碼塊與Java繼承
一.區域性程式碼塊
1)位置:方法中
2)作用:限定區域性變數的宣告週期。因為區域性程式碼塊可以產生不同的作用域
public class Demo01 {
public static void main(String[] args) {
{
int num=10;
System.out.println(num);
}
}
二.構造程式碼塊
1)位置:在類中,方法外
2)定義:直接在類中編寫程式碼塊,稱為構造塊
3)程式碼
class Demo{
}
{
System.out.println("構造程式碼塊") ;
}
注意:構造塊優先於構造方法執行,且執行多次
三.靜態程式碼塊
1)定義:直接用static關鍵字來宣告的
2)位置:在類中,方法外
3)特點:只載入一次,隨著類的載入而載入
4)應用場景:用來載入驅動
5)程式碼:
class Demo{
static{
System.out.println("靜態程式碼塊") ;
}
四.三個程式碼塊的執行
class Student {
static {
System.out.println("Student 靜態程式碼塊”);3
}
{
System.out.println("Student 構造程式碼塊”);4 6
}
public Student() {
System.out.println("Student 構造方法”);5 7
}
}
class Demo2_Student {
static {
System.out.println("Demo2_Student靜態程式碼塊”);1
}
public static void main(String[] args) {
System.out.println("我是main方法”);2
Student s1 = new Student();
Student s2 = new Student();
}
}
執行順序:
父類靜態程式碼塊→子類靜態程式碼塊→父類構造程式碼塊→父類構造方法→子類構造程式碼塊→子類構造方法
1:Demo2_Student靜態程式碼塊
2:我是main方法
3.Student 靜態程式碼塊
4.Student 構造程式碼塊
5.Student 構造方法
6.Student 構造程式碼塊
7.Student 構造方法
五.繼承(用 extends關鍵字繼承)
1)定義:
把多個類中存在相同屬性和行為時,將這些內容抽取到單獨一個類中,那麼這個多個類無需再定義這些屬性和行為,只要繼承那個類就行了。
2)特點: 1.Java只支援單繼承,不支援多繼承。 (就是說,一個類繼承了一個父類,不允許在繼承別的父類)
2.Java支援多層繼承。
class DemoA {//爺爺類
String name; //名字
public void sayHi() {
System.out.println(name);
}
}
class DemoB extends DemoA{//父類
}
class DemoC extends DemoB{//子類
}
3)優點
1.提高程式碼的複用性
2.讓類與類之間產生聯絡
3)形式:
class 子類的類名 extends 父類的類名{
}
4)程式碼
public class Demo02 {
public static void main(String[] args) {
Cat cat = new Cat();
cat.color="黑貓";
cat.leg=4;
cat.sayHi();
}
}
//寫一個動物類
class Animal{
String color; //顏色
int leg ; //腿數
String name;
public void sayHi() {
System.out.println(color+"---"+leg);
}
}
class Cat extends Animal{
}
class Dog extends Animal{
}
六.繼承中this和super
1)應用場景
1.當子類和父類出現同名的成員變數和成員方法時,用super
2.當子類要呼叫父類建構函式時,可以用super
2)區別
1.成員變數(成員變數同名)
this.num; 這個是本類的成員變數
super.num 這個是父類的成員變數
2.構造方法(注意 繼承不能繼承父類的建構函式)
public Student(String name,int age) {//本類的構造方法
//呼叫 父類的 有參構造方法
super(name,age);
}
3.成員方法(成員方法名相同)
class Father{
public void siri() {
System.out.println("我能說英文");
}
}
class Son extence Father{
public void sc(){//本類的成員方法
super.siri();//父類的成員方法
}
}
七.方法的重寫
1.定義
子類中出現與父類一模一樣的方法時(方法名相同)
2)應用場景
當子類需要父類的功能,而功能主體子類有自己的功能時,可以重寫父類中的方法,這樣,既繼承了父類的功能,又定義了子類特有的內容。
3)程式碼
class Ios7{
public void siri() {
System.out.println("我能說英文");
}
}
class Ios8 extends Ios7{
//註解 @Override 標識著這個方法是重寫父類的方法
@Override
public void siri() {
// TODO Auto-generated method stub
//這裡調不呼叫父類的方法 要根據實際開發來寫
super.siri();
System.out.println("功能升級 我會說中文了");
public void sc() {
super.siri();
}
}
八.final關鍵字(修飾類,成員變數,成員方法)
1.特點
1)修飾類的時候,該類不能被繼承
2)修飾成員變數的時候,該成員變數不能被修改,變成常量
注:用final修飾的變數的命名規則:
名字全部大寫,多單詞用下劃線分開 MAX_VALUE
final修飾成員變數,必須初始化,初始化有兩種
1)直接賦初值
2)構造方法中賦值
final int num;
public Team() {
num=10;
}
3)修飾成員方法的時候,該成員方法不能被重寫
相關文章
- java繼承與多型Java繼承多型
- Java 繼承與多型:程式碼重用與靈活性的巧妙結合Java繼承多型
- java封裝繼承以及多型(含程式碼)Java封裝繼承多型
- Java的繼承Java繼承
- 12.16 Java繼承Java繼承
- java繼承extendsJava繼承
- Java 自學 - 介面與繼承 介面Java繼承
- java中的繼承Java繼承
- java -繼承 -重寫Java繼承
- Java繼承練習Java繼承
- Java集合繼承圖Java繼承
- Java中的類繼承與多型Java繼承多型
- Java中介面與繼承的區別Java繼承
- java 程式碼塊Java
- 【Java】繼承、抽象、組合Java繼承抽象
- Java 繼承是什麼?Java繼承
- java物件導向繼承Java物件繼承
- java-物件導向程式設計--繼承Java物件程式設計繼承
- Java基礎10 介面的繼承與抽象類Java繼承抽象
- C++ 多級繼承與多重繼承:程式碼組織與靈活性的平衡C++繼承
- Java - 26 程式碼塊Java
- java繼承基礎詳解Java繼承
- java——繼承遇到構造方法Java繼承構造方法
- Java之繼承和抽象類Java繼承抽象
- 多繼承 與 多重繼承繼承
- Java入門系列-16-繼承Java繼承
- Java核心技術筆記 繼承Java筆記繼承
- Java 中的程式碼塊Java
- Java靜態程式碼塊Java
- Java中的程式碼塊Java
- 《Java從入門到失業》第五章:繼承與多型(5.1-5.7):繼承Java繼承多型
- Head First Java學習筆記(7):繼承與多型Java筆記繼承多型
- JAVA中的註解可以繼承嗎?Java繼承
- JAVA物件導向高階一:繼承Java物件繼承
- 5-Java物件導向-繼承(下)Java物件繼承
- java學習——物件導向之繼承Java物件繼承
- 好程式設計師Java培訓之泛型繼承原理與用法詳解程式設計師Java泛型繼承
- Java面試題:Java中的集合及其繼承關係Java面試題繼承
- java中的程式碼塊(初始化塊)Java