前言

小编很诚实,这一期我不会期望有啥阅读量!本文主要梳理一下国外大学中大一计算机Java课里面的部分核心概念,希望各位不喜勿喷!在新西兰的的八所大学里,目前只有小编读的奥塔哥大学会在大一计算机的课程中设置Java语言的课,当然了,Python是也有的。

很多母语非英语的同学在读这类编程课程的时候,往往会比较吃力,尤其是在没有任何编程语言直接学Java的情况下,会异常的难以消化课程知识。

本期,小编带领大家(估计只有部分读者了)走进Java语言的核心,也就是面向对象(Object-orinted)的体现之继承。

继承(Inheritance)

继承是面向对象语言们的基石,因为它允许创建分等级层次的类。继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。

在我们日常的生活中有很多的例子,比如下图:

java继承方法的快捷键 java继承语句_System

兔子和羊属于食草动物类,狮子和豹属于食肉动物类。食草动物和食肉动物又是属于动物类。所以继承需要符合的关系是:is-a,父类更通用,子类更具体。虽然食草动物和食肉动物都是属于动物,但是两者的属性和行为上有差别,所以子类会具有父类的一般特性也会具有自身的特性。

类的继承格式当然是十分重要的,在Java中通过" extends " 关键字可以声明一个类是从另外一个类继承而来的,具体的体现如下:

class 父类 {}class 子类 extends 父类 {}

到这里可能很多人会问,我们为什么需要继承?继承的意义是如何体现的呢?接下俩小编就来为大家通过实例来证明这个需求!

开发“人”类,其中人分别为Tom和Jerry,要求如下:

· Tom: 属性(姓名,id),方法(学习,睡觉,自我介绍)

· Jerry:属性(姓名,id),方法(学习,睡觉,自我介绍)

Tom类的代码如下:

public class Tom {  private String name;  private int id;  public Tom(String myName, int myid) {    name = myName;    id = myid;  }  public void study(){    System.out.println(name + " is studying");  }  public void sleep(){    System.out.println(name + " is sleeping");  }  public void introduction() {    System.out.println("Hello! I am " + name + " and my id is "+ id + ".");  }}

Jerry类的代码如下:

public class Jerry {  private String name;  private int id;  public Tom(String myName, int myid) {    name = myName;    id = myid;  }  public void study(){    System.out.println(name + " is studying");  }  public void sleep(){    System.out.println(name + " is sleeping");  }  public void introduction() {    System.out.println("Hello! I am " + name + " and my id is "+ id + ".");  }}

到现在,我们就能看出来以上两段代码有着大量重复,后果更是显而易见的,代码会很大且臃肿,最关键的问题是后期的维护会相当麻烦,而且十分容易出错!要解决这些问题的方法十分简单,就是使用继承,换句话说就是将以上两段代码中相同的部分提取出来组成一个父类。

公共父类代码如下:

public class Human {  private String name;  private int id;  public Tom(String myName, int myid) {    name = myName;    id = myid;  }  public void study(){    System.out.println(name + " is studying");  }  public void sleep(){    System.out.println(name + " is sleeping");  }  public void introduction() {    System.out.println("Hello! I am " + name + " and my id is "+ id + ".");  }}

这个时候,上面代码中的Human类就可以作为一个父类,然后Tom类和Jerrry类继承了这个类之后,就具有了父类中的属性和方法!随后,子类中便不会出现重复的代码了,好处也是十分明显的,比如代码简洁性大大提高,维护也要容易很多,也同时提升了代码的复用性。

继承后的代码如下:

public class Tom extends Human {  public Tom (String myName, int myid) {    super(myName, myid);    }}
public class Jerry extends Human {    public Jerry (String myName, int myid) {    super(myName, myid);    }}

有关于Java继承的类型如下,需要注意的是Java不支持多继承!

java继承方法的快捷键 java继承语句_Java_02

肯定有人会问,那在Java里是如何实现多继承的呢?答案很简单,可以通过接口来实现!换句话说就是使用" implements "关键字。这个关键字可以变相的让Java具有多继承的特性,使用范围为类继承接口的情况,可以同时继承多个接口,在这里需要注意的是,接口与接口之间必须使用逗号分隔。

implements关键字代码示例:

public interface A {  public void study();  public void sleep();}public interface B {  public void show();}public class C implements A,B {}

在这里需要特别强调的是,“ final "关键字声明类可以把类定义为不可继承的,即最终类;或者用于修饰方法,但该方法不能被子类重写!

声明类:final class 类名 {类体}
声明方法:修饰符(public/private/default/protected) final返回值类型 方法名(){方法体}

本期结语

本期有关于Java语言中的继承这个概念的讲解就先到此啦!