25.1.30小记
继承
A extends B : A继承于B
继承可以使子类得到父类的函数(若子类不存在那个名字的函数)
父类有什么就继承什么,并且子类可以增加新东西
父类:
package dome;
public class Item {
public static void main(String[] args) {
}
public void print() {
System.out.println("Item");
}
}
子类:
package dome;
public class CD extends Item{
private String title;
private String artist;
private int numofTracks;
private int playingTime;
private boolean gotIt = false;
private String comment;
public CD(String title, String artist, int numofTracks, int playingTime, String comment) {
this.title = title;
this.artist = artist;
this.numofTracks = numofTracks;
this.playingTime = playingTime;
this.comment = comment;
}
public static void main(String[] args) {
CD cd = new CD("abc", "abc", 4, 60, "...");
cd.print();
}
// public void print() {
// System.out.println("CD:"+ title + ":" + artist);
// }
}
打印:
Item
package dome;
public class CD extends Item{
private String title;
private String artist;
private int numofTracks;
private int playingTime;
private boolean gotIt = false;
private String comment;
public CD(String title, String artist, int numofTracks, int playingTime, String comment) {
this.title = title;
this.artist = artist;
this.numofTracks = numofTracks;
this.playingTime = playingTime;
this.comment = comment;
}
public static void main(String[] args) {
CD cd = new CD("abc", "abc", 4, 60, "...");
cd.print();
}
public void print() {
System.out.println("CD:"+ title + ":" + artist);
}
}
打印:
CD:abc:abc
父类中private的东西,只有父类自己才可以用
protected: 自己可以访问,同一个包里的其他类可以访问,子类可以访问
为Item中的title做一个构造器(对title进行初始化)
在子类中,通过super()传递参数给父类的构造器 eg.(super(title))
如果在子类中没有调用super()则会去寻找father中没有参数的构造器去调用
程序运行顺序 :
father的定义初始化
father的构造器
son的定义初始化
son的构造器
当子类和父类拥有相同名字的变量时,在子类中调用则使用的是子类中的,在父类中调用使用的是父类中的
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?