1、继承是面向对象三大特征之一,三大特征分别是:封装、继承、多态
2、继承基本的作用是:代码复用。但是继承最重要的作用是:有了继承才有了以后的方法的覆盖和多态机制。
3、继承的语法格式:
[修饰符列表] class 类名 extends 父类名 (){
类体 = 属性 + 方法
}
4、Java语言当中的继承只支持单继承 ,一个类不能同时继承很多类,只能继承一个类。(在C++中支持多继承)
5、关于继承中的一些术语:
B类继承A类,其中:
A类称为:父类、基类、超类、superclass
B类称为:子类、派生类、subclass
6、在Java语言当中子类继承父类都继承哪些数据?
- 私有的不支持继承
- 构造方法不支持继承
- 其他数据都支持继承
7、虽然Java语言只支持单继承,但一个类也可以间接继承其他类,例如:
C extends B{
}
B extends A{
}
A extends T{
}
C类直接继承B类,但C类间接继承A、T类。
8、Java语言中假设一个类没有显示地继承任何类,该类默认地继承Javase库当中提供的java.lang.Object类。Java语言中任何一个类都有Object类的特征。
public class ExtendsTest { //查找类型快捷键:ctrl + shift + T //查找资源快捷键:ctrl + shift + R public static void main(String[] args) { ExtendsTest et = new ExtendsTest(); String s = et.toString(); System.out.println(s);//inherit.ExtendsTest@1a1d6a08 } }
上述代码中"toString()"验证了Java语言中任何一个类都有Object类的特征。
银行账户类
public class Account { private String actnum; private double balance;//余额 public Account() { } public Account(String actnum, double balance) { this.actnum = actnum; this.balance = balance; } public String getActnum() { return actnum; } public void setActnum(String actnum) { this.actnum = actnum; } public double getBalance() { return balance; } public void setBalance(double balance) { this.balance = balance; } }
xyk账户类
public class CreditAccount { private String actnum; private String balance; private String credit; public CreditAccount() { } public CreditAccount(String actnum, String balance, String credit) { this.actnum = actnum; this.balance = balance; this.credit = credit; } public String getActnum() { return actnum; } public void setActnum(String actnum) { this.actnum = actnum; } public String getBalance() { return balance; } public void setBalance(String balance) { this.balance = balance; } public String getCredit() { return credit; } public void setCredit(String credit) { this.credit = credit; } }
观察两种类,其中有很多重复的地方
private String actnum; private String balance; public String getActnum() { return actnum; } public void setActnum(String actnum) { this.actnum = actnum; } public String getBalance() { return balance; } public void setBalance(String balance) { this.balance = balance; }
上述这些为相同重复部分
改进:extends 继承
public class CreditAccount extends Account{ private String credit; public CreditAccount() { } public String getCredit() { return credit; } public void setCredit(String credit) { this.credit = credit; } }
实践发现,可以调用,继承成功。
public class ExtendsTest02 { public static void main(String[] args) { C c = new C(); c.doSome(); } } class A{ public void doSome () { System.out.println("do some!"); } } class B extends A{ } class C extends B{ }
上述中c.doSome调用的doSome方法是从B类中继承过来的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)