设计原则:对于已近投入使用的类尽量不要进行修改,推荐定义一个新的类来重复利用其中的共性内容,并且添加改动新的内容
代码举例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | public class Phone { public void call(){ System.out.println( "打电话" ); } public void send(){ System.out.println( "发消息" ); } public void show(){ System.out.println( "显示号码" ); } } |
public class NewPhone extends Phone{ @Override public void show() { super.show(); System.out.println("显示名字"); System.out.println("显示头像"); } }
public static void main(String[] args) { Phone phone = new Phone(); phone.call(); phone.send(); phone.show(); System.out.println("==========="); NewPhone newPhone = new NewPhone(); newPhone.call(); newPhone.send(); newPhone.show(); }
图

继承中构造方问的特点
继承关系中,父子类构造方法的访间特点:
子类构造方法当中有一个默认隐含的“super()"调用,所以一定是先调用的父类构造,后执行的子类构造。
子类构造可以通过super关键字来调用父类重载构造。
super的父类构造调用,必须是子类构造方法的第一个语句。不能一个子类构造调用多次super构造。
总结:
子类必须调用父类构造方法,不写则赠送super();写了则用写的指定的super调用,super只能有一个,
public Fu(int num){ System.out.println("父类构造方法!"); }
public class Zi extends Fu{
public Zi(){
super(10);
super();
System.out.println("子类构造方法");
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)