面向对象三大特性之继承

  代码中创建的类,主要是为了抽象现实中的一些事物(包含属性和方法)。有的时候客观事物之间就存在一些关联,进而推之类和类之间也存在某些关联。例如,对于猫咪来说,其属于动物的范畴,如果此时需要实现动物和猫咪吃东西和猫咪特有的喵喵叫,就会在编写代码的时候存在大量的重复的代码。
  为了实现代码之间的复用,就引入了继承的关系。像动物这样被继承的类称之为父类基类或者超类,对于猫咪这样的类,称之为子类派生类

基本语法
class 子类 extends 父类

  通过继承的关系可以实现上述例子当中名字字段、吃东西方法等等的复用,代码如下:

class Animal{
  private String name;
  public Animal(String name){
    this.name = name;
  }
  public void eat(String food){
    System.out.println(this.name + "正在吃“+ food);
  }
}
class Cat enxtends Animal{
  public Cat(String name){
    super(name);
  }
  public void meow(){
    System.out.println(this.name + "喵喵叫“);
  }
}
public class ExtendsDemo01{
  public static void main(String[] args){
    Cat cat = new Cat("小花“);
    cat.eat("小鱼干");
    cat.meow();
  }
}
---------------------------------

  当使用extends关键字进行指定继承父类时,只能有一个父类,子类会继承父类当中所有被public修饰的字段和方法。子类的实例当中,也包含着父类的实例,可以使用super关键字来得到父类实例的引用。

protected关键字

  如果将字段或者方法设置为private ,则子类将不能访问该字段以及方法。但是如果设置为public ,有违封装的初衷。因此引入了新的关键字protected
  对于类的调用者来说, protected 修饰的字段和方法是不能访问的。
  对于类的 子类 和 同一个包的其他类 来说, protected 修饰的字段和方法是可以访问的。

更复杂的继承关系

  动物当中有猫,猫又被分为中华田园猫、布偶猫等,中华田园猫又被分为狸花猫、橘猫等。这样一层层之间的联系能够例举出橘猫继承了中华田园猫,中华田园猫继承了猫这一父类。这样的继承方式称为多层继承,即子类还可以继续派生出新的子类。

final关键字

  final 如果修饰变量或者字段时,表示的是常量,不能被修改。
  final也能够修饰类,此时该类就不能够被继承。final关键字的功能就是限制类被继承

组合

  和继承类似,组合也是一种表达类之间关系的方式,也能够达到代码复用的效果。
  例如学校和学生、老师之间的关系。

  class Student{
    ...
   }
   class Teacher{
     ...
   }
   class School{
     public Student[] students;
     publc Teacher[] teacher;
   }

  组合并没有涉及到特殊的语法,仅仅是将一个类的实例作为另一个类的字段,这是设计类的常用方式之一。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值