开发工具与关键技术:eclipse java
作者:黄济民
撰写时间:2021.6.20
package com.hjm.javase.inherit;
/**
- 关于java语言当中的继承:
- 1.继承是面向对象的三大特征之一,三大特征分别是:封装、继承、多态
- 2.继承“基本”的作用是:代码复用。但是继承最“重要”的作用是:有了继承才有了以后“方法的覆盖”和“多态机制”。
- 3.继承语法格式:
-
[修饰符列表] class 类名 extends 父类名{
-
类体 = 属性 + 方法
-
}
- 4.java语言当中的继承只支持单继承,一个类不能同时继承很多类,只能继承一个类。在C++中支持多继承。
- 5.关于继承中的一些术语:
-
B类继承A类,其中:
-
A类称为:子类、基类、超类、superclass
-
B类称为:子类、派生类、subclass
- 6.java语言当中子类继承父类都继承哪些数据呢?
-
- 私有的不支持继承
-
- 构造方法不支持继承
-
- 其他数据都可以被继承
- 7.虽然java语言当中只支持单继承,但是一个类也可以间接继承其他类,例如:
-
C extend B{
-
}
-
B extend A{
-
}
-
A extend T{
-
}
-
C直接继承B类,但是C类间接继承T A B类
- 8.java语言中假设一个类没有显示的继承任何类,该类默认继承javaSE库当中提供的java.lang.Object类。
-
java语言中任何一个类中都有object类的特征
- 9.子类继承父类不能继承私有的类,继承不了
*/
//测试类
public class ExtendsTest {
//Eclipse快捷键:查找类型【Open Type】--> ctrl + shift + t
//Eclipse快捷键:查找资源【Open Resource】--> ctrl + shift + r
public static void main(String[] args) {
ExtendsTest et = new ExtendsTest();
//这里编译通过了,这说明可以调用toString方法,ExtendsTest类中有toString方法,从object类中继承过来的
String s = et.toString();
System.out.println(s); //com.hjm.javase.inherit.ExtendsTest@15db9742
CrediAccount act = new CrediAccount();
//修改用set
act.setActno("act-001");
act.setBalance(-1000.0);
act.setCredit(0.99);
//读取用get
System.out.println(act.getActno() + "," + act.getBalance() + "," + act.getCredit());
}
}
package com.hjm.javase.inherit;
public class ExtendsTest2 {
public static void main(String[] args) {
C c = new C();
c.doSome();//这里调用的doSome方法是从B类中继承过来的doSome方法。
}
}
class A{
public void doSome(){
System.out.println(“do Some!”);
}
}
class B extends A{
public void doSome(){
System.out.println("—do Some!----");
}
}
class C extends B{
}
下面是演示的例子:
package com.hjm.javase.inherit;
//账户类
public class Account {
// 账号
private String actno;
// 余额
private double balance;
// 无参的构造方法
public Account() {
}
// 有参数的构造方法
public Account(String actno, double balance) {
super();
this.actno = actno;
this.balance = balance;
}
// get
public String getActno() {
return actno;
}
// set
public void setActno(String actno) {
this.actno = actno;
}
// get
public double getBalance() {
return balance;
}
// set
public void setBalance(double balance) {
this.balance = balance;
}
}
package com.hjm.javase.inherit;
//信用账号类 继承Account类
public class CrediAccount extends Account{
//信用度
private double credit;
//无参构造器
public CrediAccount() {
}
//get
public double getCredit() {
return credit;
}
//set
public void setCredit(double credit) {
this.credit = credit;
}
}