Javaweb微专业第十一讲-----继承与抽象类

软件重用是提高软件质量及开发效率的有效途径、面向对象的分析和编程技术为软件重用提供了新的手段

1.类的继承

1.继承的相关概念

一个类从现有的类中派生,这个过程称为类继承。没有显示指定父类时,父类隐含为java.lang包中的Object类。也就是说,所有类都是Object类的子类。一个父类可以拥有多个子类,每个子类是父类的特殊化,是在公共属性的基础上的功能、内涵的拓展和延伸。
Java不支持类的多重继承,只支持类的单继承,即每个子类智能有一个直接父类,类的层次为树状结构,Object类为树的根节点。但我们可以通过接口来实现多继承的功能(课外:多继承的结构为网状结构)
子类和父类的关系是子类对象与父类对象存在”IS A“(或)”IS KIND OF“的关系。
如果是”HAS A“的关系,我们不建议使用继承,建议使用组合来实现,也就是做成类的实例变量(类的属性)

1.2用extends关键字来实现

extend 就是继承的意思,加s是因为第三人称单数
例如

public class Employee extends Person{
...
            }

1.3继承的好处

采用继承的机制来组织、设计类,可以提高程序的抽象程度,更接近人类的思维方式,采用继承编写的程序结构清晰,节省编程时间。

1.4隐藏与覆盖

子类能够从父类那里继承到什么。子类从父类继承父类的所有东西。
但由于访问控制,私有的属性与方法子类不能直接访问

2.抽象类

2.1 抽象类的定义

abstract class Animal{

}

2.2 抽象方法

abstract class Animal{
    public abstract int run(); //抽象方法,抽象方法只需提供声明不用实现
}

继承抽象类,要实现抽象方法,否则该类也是一个抽象类

2.3 抽象类作用

模板设计模式

3.接口与接口的实现

3.1接口的定义

[访问控制符]interface <接口名> {
    final 数据类型 符号常量名 = 常数;
    返回值类型  方法名([参数列表]);
      …
}

3.2接口的实现

如何实现一个接口

class Dog implements Animal{
    //实现接口的方法(这里省略,这里implements 也是因为第三人称单数+s)
    ...

} 
  1. 接口的成员变量都是public,static,final类型的(都可省略),必须被显示初始化
  2. Java接口中的方法默认都是public,abstract类型的(都可省略),没有方法体,不能被实例化
  3. 接口没有构造函数,不能被实例化,但允许定义接口类型的引用变量,该引用变量引用实现了这个接口的类的实例
  4. 一个接口不能实现(implements)另一个接口,但它可以继承多个其它的接口
  5. Java接口必须通过类来实现它的抽象方法
  6. 一个类只能继承一个类,但是可以实现多个接口
  7. 当类实现了某个Java接口时,它必须实现接口中的所有抽象方法,否则这个类必须声明为抽象类
  8. 一个类只能继承一个直接的父类,但可以实现多个接口,间接的实现了多继承.

3.3 接口的作用

1、标识具有某种能力,最常见的两个接口:
Serializable,表示可以序列化和反序列;
Cloneable接口,表示可以被克隆
2、向上层应用提供操作的标准
3、远程方法视图

4.组合与继承

组合则表示 该类“有一个”,而继承这表示,该类是什么。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小嘉丶学长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值