Java——面向对象的特征二:继承性

2.1面向对象的特征二:继承性

引入类继承最基本的作用是:代码重用。

Java——面向对象的特征二:继承性

②语法

              [修饰符列表] class 子类名 extends 父类名{

                     类体;

              }

③子类继承父类以后,父类中声明的属性、方法,子类就可以获取到。

明确:当父类中有私有的属性或方法时,子类同样可以获取得到,只是由于封装性的设计,使得子类不可以直接调用罢了,但是可以间接访问。子类除了通过继承,获取父类的结构之外,还可以定义自己的特有的成分。构造方法无法被子类继承。

extends子类是对父类功能的“扩展”,明确子类不是父类的子集。

④java中类的继承性只支持单继承

一个类只能继承一个父类。反之,一个父类可以有多个子类。一个类如果没有显示的继承其他类,则该类默认继承Object,Object是SUN提供的java中的根类。

⑤子父类是相对的概念

Customer没有显示继承其他类,默认继承SUN提供的java.lang.Object;所有Customer类中也有toString方法.

public class Customer{

       public static void main(String[] args){

              Customer c = new Customer();

              String s = c.toString();

              System.out.println(s); //Customer@de6ced

       }

}

例子

/*

       账户类

              父类(超类,基类,superclass)

*/

public class Account{

       //账号

       private String actno;

       //余额

       double balance;

       //Constructor

       Account(){}

       Account(String actno,double balance){

              this.actno = actno;

              this.balance = balance;

       }

       //setter and getter

       public void setActno(String actno){

              this.actno = actno;

       }

       public String getActno(){

              return actno;

       }

}

/*

       信用账户

              子类(派生类,subclass)  

*/

public class DebitAccount extends Account{

       //信誉度

       double debit;

}

public class Test03{

       public static void main(String[] args){

              //创建信用卡对象

              DebitAccount da = new DebitAccount();

              //给信用卡账号赋值

              da.setActno("001"); //赋值

              //可以间接访问.

              System.out.println(da.getActno()); //读取

              //没有办法直接访问

              //System.out.println(da.actno);

       }

}