面向对象特征--继承

继承:继承是面向对象程序设计不可缺少的设计思想,是实现代码可重 用的根基,是提高代码可扩展性的主要途径。 ● 继承是从已有的类中派生出新的类,新的类能吸收已有类的属性和行为, 并能扩展新的能力。 ● 在JAVA中使用extends关键字来表示继承关系。 ● JAVA不支持多继承,单继承使JAVA的继承关系很简单,一个类只能有一个 直接父类。 ● 继承之后子类可以调用父类的所有非私有属性和非私有方法

● 何时使用继承?

     ● 继承与真实世界类似 只要说“猫是动物” 狗也是动物

             符合is-a关系的设计,使用继承 将子类共有的属性和行为放到父类中

● 继承是代码重用的一种方式

● 继承的形式: 访问权限修饰符 子类名 extends 父类名{子类体

public class Animal{
public void eat(){}
}
public class Dog extends Animal{
public void play(){}
}
子类对象可以直接调用父类的方法,强调复用性
Dog dog = new Dog ();
dog.eat();

Dog类是 Animal类的子类, Animal类是Dog类的父类 Dog类是 Animal类的派生类, Animal类是Dog类的基类

继承的传递性 C类从B类继承,B类又从A类继承 那么C类就具有B类和A类的所有非私有属性和非私有方法 当一个没有继承任何一个类时,jvm会默认让类继承Object类 Object是 java为所有类提供的基类

● 继承中的构造方法 子类构造方法会先调用父类构造方法 使用super关键字调用父类任意一个构造方法,必须写在构造方法的第一行 如果子类的构造方法中没有显式地调用基类构造方法,则系统默认调用基类无 参数的构造方法。

• super关键字用途

• 使用super关键字访问父类成员 用super.成员变量名来引用父类成员变量 用super.方法名(参数列表)访问父类的方法。 用super.构造方法(参数列表)访问父类构造方法

 

误区: 不要把super误认为是父类对象.在创建子类对象时, 不会创建父类对象. 只会将父类中的信息加载到子类对象中存储

● 方法的重写(OverRide)

● 应用场景 当父类的方法实现不能满足子类需求时,可以对方法进行重写( override)

● 在子类中可以根据需要对从基类中继承来的方法进行重写。

● 方法重写规则 方法名相同、参数列表相同; 返回值类型相同; 访问权限不能小于父类权限;

注意:构造方法,静态方法不能重写,成员变量不存在重写

抽象类

● 抽象方法 抽象方法是一种特殊的方法:它只有声明,而没有具体的实现.

      抽象方法必须用abstract关键字进行修饰

● 如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象 类。

● 抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方 法和构造方法。

● 用abstract修饰的类就是抽象类。如果某个类中包含有抽象方法,那么该类就必 须定义成抽象类。

● 特点: 抽象类不能被实例化,但可以有构造方法,因为抽象类中含有无具体实现的方法, 所以不能用抽象类创建对象。 抽象类只能用作基类,表示的是一种继承关系。继承抽象类的非抽象类必须实 现其中的所有抽象方法,而已实现方法的参数、返回值要和抽象类中的方法一 样。否则,该类也必须声明为抽象类。

● 使用关键字abstract定义抽象类,一般语法:

[访问权限] abstract class 类名 {
成员列表
}
public abstract class Shapes {
public abstract void draw();
}
public abstract class Shapes {
public void draw(){
//具体代码
}
}
​

● 抽象类,抽象方法,在软件开发过程中都是设计层面的概念。也就是说, 设计人员会设计出抽象类,抽象方法,程序员都是来继承这些抽象类并 覆盖抽象方法,实现具体功能。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值