10.10 java第四章继承、接口和内部类

继承:类、超类、子类

class 子类名 extends 父类名

  • Employee:超类(superclass),基类(base class),父类(parent class)
  • Manager:子类(subclass),派生类(derived class),孩子类(child class)

子类将继承父类成员 ,但不能直接访问父类private成员(用get和set方法)

覆盖与重载

子类可对父类进行扩展和特殊化:

(1)添加成员变量和方法

(2)重新定义父类中已有的方法:覆盖(override )   子类中的方法应与父类中的被覆盖的方法有完全相同的:参数列表、返回值;而且访问权限不能更严格; super调用父类被覆盖的方法

 class Manager extends Employee
{
       private  double bonus;//添加新的成员变量
       public void setBonus(double bonus)     //添加新的方法 
       {      this.bonus=bonus;   }

        public double getSalary( )//覆盖父类中的方法
       {
          double baseSalary=super.getSalary( );
          return baseSalary+bonus;
       }


}     

子类的构造方法:

(1)在子类的构造方法中使用super(参数)调用父类的含参构造方法, super必须是第一句;

public Manager( String n,double s,int year,int month,int day)//构造方法
{
    super(n,s,year,month,day);
    bonus=0;
}

(2)若子类的构造方法中,没有使用super调用父类的构造方法和this调用重载的其他构造方法,则在创建子类对象时,系统默认先调用父类的无参构造方法,然后执行子类的构造方法;    

(3)this( )和super(  )不能同时出现。

顺序:父类回溯初始化 --> 声明中的初始化 --> 本类中的构造函数  : Sandwitch例子

阻止继承

final:

  • final标记的类不能被继承
  • final标记的方法不能被覆盖
  • final标记的量是常量,只能赋值一次

多态和动态绑定

多态:

  • 一个对象(引用)变量可以引用多种实际类型对象的现象称为多态。
  • 一个对象(引用)变量可以引用这个类和该类的所有子类对象。

抽象类(abstract class)

方法交给子类根据自己的情况实现

访问控制

  • public:所有类可见
  • protected:对子类和本包可见(继承访问权限)
  • private:本类可见
  • 缺省:类前面不加修饰,对本包可见

Object类【所有类的最终父类(根)】

class Employee
{…
}
//与下面相同
class Employee extends Object
{…
}

可以使用Object引用变量引用任何类型的对象

Object obj=new  Employee(“Jack”,35000);

Employee e=(Employee)obj;

equals方法

  • 检测一个对象是否等于另一个对象      
  • Object类中提供的实现为比较是否具有相同的引用        
  • 可在类中重新定义该方法,以实现预期的操作

hashCode方法

toString方法

接口

描述具有什么功能,而不给出每个功能的具体实现,对希望符合这个接口的类的一组需求描述

  • 接口中的方法:隐含为public abstract
  • 接口中的成员变量:隐含为public static final

接口的定义:

[public] interface  接口名 [extends 接口列表]
{	
       返回类型  方法名(…);
        …
       常量类型  常量名=. . . ;
       …
 } 
[public] interface  接口名 [extends 接口列表]
{	
       返回类型  方法名(…);
        …
       常量类型  常量名=. . . ;
       …
 } 

接口的实现:

当一个类声明 implements 某一 interface 时,必须具体实现该 interface 中定义的抽象方法,并把此方法定义为public的(抽象类除外)

接口特点:

  • 一个类可以实现一个或多个接口
  • 可以定义接口引用变量,引用实现了接口的类的对象
  • instanceof 可以检查一个对象是否实现了某个特定的接口
  • 利用接口可实现多重继承的大部分功能,同时避免其复杂性

回调

Timer

对象克隆

内部类

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值