一、super和this的區別
1.1、super關鍵字
super表示的是對于父類實體的應用,
(1.使用super呼叫父類的構造器
class Animal {
public String name;
public Animal(String name){
this.name=name;
}
}
class Dog extends Animal {
public Dog(String name) {
super(name);
}
}
(2.使用super呼叫父類的方法
class Animal {
public String name;
public Animal(String name){
this.name=name;
}
public void eat(String name){
System.out.println(this.name+"正在吃東西");
}
}
class Dog extends Animal {
public Dog(String name) {
super(name);
}
public void eat(String name) {
super.eat(name);
}
}
1.2 this關鍵字
this表示的是對于本類實體的應用
初始化:
public Animal(String name){
this.name=name;
}
對成員屬性的呼叫:
public void eat(String name){
System.out.println(this.name+"正在吃東西");
System.out.println(this.name);
}
呼叫方法:
public void eat(String name){
System.out.println(this.name+"正在吃東西");
System.out.println(this.name);
}
public void mean(){
this.eat(name);
}
區別:
this訪問的是本類中的屬性和方法、先查找本類,如果本類沒有就呼叫父類、表示當前物件,
spuer是由子類訪問父類中的屬性和方法、并查找本類直接呼叫父類,
二、重寫和多載的區別
重寫:(Override)
1.重寫的方法名相同,
2.方法的引數串列相同,
3.方法的回傳值相同,
多載:(Overloading)(不一定發生在一個類中,比如說繼承可以在子類中實作)
1.多載的方法名相同,
2.方法的引數串列不相同(資料的個數和資料的型別),
3.方法的回傳值不做要求,
三、抽象類和介面的區別
抽象類:由abstract來修飾
介面:由interface來修飾
1.在抽象類中可以定義成員屬性和成員方法,而在介面中方法只能是抽象方法(在jdk1.8之后可以通過default來應用普通方法,介面中方法默認pubilc abstract,成員屬性默認pubilc static final),
2.介面和抽象類都不能被實體化,
3.介面和抽象類都是為了被繼承(抽象類的抽象方法不能被final和private修飾,介面中類和介面使用implements,介面和介面中間用extends來繼承),
4.類呼叫抽象類用extends呼叫,當A抽象類呼叫B抽象類,類呼叫時要實作所有的抽象方法,
類可以通過implements來呼叫介面,類可以繼承多個介面,呼叫時用逗號隔開,呼叫時也要實作所有抽象方法,
5.不管是抽象類還是介面,都可以向上轉型和進行運行時系結(多型),
四、順序表和鏈表
順序表的底層實作是陣列、鏈表的底層是鏈表,
對于順序表更適合搜索、查找和替換
對于鏈表更適合增加、洗掉
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/299437.html
標籤:其他
