面向对象---继承
什么是继承 --- Extends
继承:在现实世界中也是真实存在的。例如:父亲很有钱,儿子不努力也很有钱。
基本语法
class 子类 extends 父类
继承的作用:
基本作用:子类继承父类,代码可以得到复用。
主要作用:因为有了继承关系,才有了后期的方法覆盖和多态机制。
继承的相关特性
B类继承A类,则A类称为“超类(superclass)、父类、基类”,B类则称为“子类(subclass)、派生类、扩展类”。
java中的继承只支持单继承。C++才支持多继承。比如,java中不允许这样写代码---class B extends A,C()
虽然不支持多继承,但是有时候会产生间接继承的效果。例如,class C extends B,class B extends A。也就是说,C继承B,B继承A;其实,C还间接继承A。
java规定,子类继承父类,除了构造方法不能继承之外,其余的都可以继承。但是私有的属性无法在子类中直接访问。(父类中private修饰的不能在子类中直接访问,可以通过间接手段访问)。
java中的类没有显示的继承任何类,则默认继承Object类,Object类是java提供的根类。也就是说,一个对象生来就具有Object类型中的所有特征。
继承缺点:代码耦合度高,父类改变后会马上影响子类。
Object类是所有类的超类。类体系结构中的根。
点击查看代码
package jicheng;
public class ExtendsTest02 {
public static void main(String[] args) {
Account act = new Account();
act.setActno("11111");
act.setBalance(10000);
System.out.println(act.getActno() + act.getBalance());
CreditAccount ca = new CreditAccount();
ca.setActno("22222");
ca.setBalance(-1000);
ca.setCredit(0.99);
System.out.println(ca.getActno() + ca.getBalance() + ca.getCredit());
}
}
class Account01{ //父类
private String actno;
private double balance;
public Account01(){}
public Account01(String actno, double balance) {
this.actno = actno;
this.balance = balance;
}
public String getActno() {
return actno;
}
public void setActno(String actno) {
this.actno = actno;
}
public double getBalance() {
return balance;
}
public void setBalance(double balance) {
this.balance = balance;
}
}
class CreditAccount01 extends Account01{ //子类,可以继承和父类相同的属性
private double credit;
public CreditAccount01(){}
public CreditAccount01(String actno, double balance, double credit) {
this.credit = credit;
}
public double getCredit() {
return credit;
}
public void setCredit(double credit) {
this.credit = credit;
}
}
Q:子类继承父类方法后,能使用子类对象调用父类方法吗?
A:可以。子类继承父类后,这个方法就属于子类了。
Q:假设以后开发中,有一个A类,一个B类,A类和B类确实有重复的代码,那么他们两个之间就可以来继承吗?
A:不一定,还是要看一看它们之间是否能够使用“is a”
点击查看代码
class Customer{
String name; //名字
//setter and getter
}
class Product{
String name; //名字
}
class Product extends Customer{
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix