java继承内存分配图 java里的继承 您所在的位置:网站首页 内存分配图java java继承内存分配图 java里的继承

java继承内存分配图 java里的继承

2024-06-18 17:28| 来源: 网络整理| 查看: 265

Java中的继承是一种机制,表示为一个对象获取父对象的所有属性和行为。

在Java中继承是:可以创建基于现有类构建新的类。 当从现有类继承时,就可以重复使用父类的方法和字段,也可以在继承的新类中添加新的方法和字段。

继承表示IS-A关系,也称为父子关系。

为什么在Java中使用继承

对于方法覆盖(因此可以实现运行时的多态性),提高代码可重用性。在Java中,子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写(覆盖)。 Java继承方法

class Subclass-name extends Superclass-name { //methods and fields }

extends关键字表示正在从现有类派生创建的新类。 “extends”的含义是增加功能。在Java的术语中,继承的类称为父类或超类,新类称为子或子类。

Java继承示例

java继承内存分配图 java里的继承_java继承内存分配图

如上图所示,Programmer是子类,Employee是超类。 两个类之间的关系是Programmer IS-A Employee. 它表示 Programmer 是一种 Employee 的类型。

class Employee { float salary = 40000; } class Programmer extends Employee { int bonus = 10000; public static void main(String args[]) { Programmer p = new Programmer(); System.out.println("Programmer salary is:" + p.salary); System.out.println("Bonus of Programmer is:" + p.bonus); } }

结果如下:

Programmer salary is:40000.0 Bonus of programmer is:10000

在上面的例子中,Programmer对象可以访问自身类以及Employee类的字段,即提高了代码可重用性。

Java继承类型

在类的基础上,在java中可以有三种类型的继承:单一,多级和分层。在Java编程中,仅能通过接口支持多重和混合继承。稍后章节中我们将了解学习接口的应用。

java继承内存分配图 java里的继承_Java_02

java继承内存分配图 java里的继承_父类_03

java继承内存分配图 java里的继承_java继承内存分配图_04

注:在Java中不支持多继承

单一继承示例:

class Animal { void eat() { System.out.println("eating..."); } } class Dog extends Animal { void bark() { System.out.println("barking..."); } } class TestInheritance { public static void main(String args[]) { Dog d = new Dog(); d.bark(); d.eat(); } }

多级继承示例

class Animal { void eat() { System.out.println("eating..."); } } class Dog extends Animal { void bark() { System.out.println("barking..."); } } class BabyDog extends Dog { void weep() { System.out.println("weeping..."); } } class TestInheritance2 { public static void main(String args[]) { BabyDog d = new BabyDog(); d.weep(); d.bark(); d.eat(); } }

多级继承示例

class Animal { void eat() { System.out.println("eating..."); } } class Dog extends Animal { void bark() { System.out.println("barking..."); } } class Cat extends Animal { void meow() { System.out.println("meowing..."); } } class TestInheritance3 { public static void main(String args[]) { Cat c = new Cat(); //因为c继承自Animal所以不能调用Dog中的方法 c.meow(); c.eat(); // c.bark();//C.T.Error } }



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有