美文网首页
JAVA 继承

JAVA 继承

作者: Six_Cai | 来源:发表于2017-10-19 17:32 被阅读0次

继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。继承是通过extends关键字进行的

继承过程中的问题

```

package animal;

public class Animal {

int weight = 888;

public void eat() {

System.out.println("Animal eat");

}

public int getWeight() {

return weight;

}

public void setWeight(int weight) {

this.weight = weight;

}

}

```

```

package animal;

public class Cat extends Animal {

int weight = 1000;//与父类的变量名相同

public String string = "hahhahha";

@Override

public void eat(){

System.out.println("Cat eat");

}

public void jump(){

System.out.println("Cat jump");

}

@Override

public int getWeight() {

return weight;

}

@Override

public void setWeight(int weight) {

this.weight = weight;

}

public String getString() {

return string;

}

}

```

```

import animal.Animal;

import animal.Cat;

public class Main {

public static void main(String[] args) {


Animal animal = new Cat();//父类对象引用指向子类对象

System.out.println(animal.toString());

animal.eat();//执行的是Cat中的方法

System.out.println(animal.getWeight());//由于override了父类方法。调用的Cat中的方法,因此输出的是1000。如果需要访问父类的weight需要通过super关键字 (super.weight)

// animal.jump(); 会提示jump方法未定义向上转型时会遗失与父类对象不同的方法,而变量不会遗失

Cat cat = (Cat) animal;//向下转型,在编译时是不会报错的,运行时可能会出现ClassCastException。

System.out.println(cat.toString());

}

}

```

运行结果:

animal.Cat@6bc7c054

Cat eat

1000

animal.Cat@6bc7c054


运行结果表明:animal中指向的是cat对象。而由于cat继承自animal因此拥有animal所有非private的方法和变量。但由于是animal的引用,因此无法使用cat中与父类不同的方法。

最后建议:在需要override方法时,加上@Override的注解。

相关文章

  • Java继承

    一、Java继承详解 Java继承目录:1.为什么要”继承“?2.继承的类型2.1 单继承2.2 多重继承2.3 ...

  • Java继承

    Java继承 一、继承类型 Java不支持多继承,但是支持多重继承 二、继承的特性 子类拥有父类非 private...

  • JAVA语言第二课

    JAVA面向对象——四大特征 继承篇——extendsJava 继承继承的概念继承是java面向对象编程技术的...

  • java培训专家介绍java的特性之:继承

    java培训专家介绍java的特性之:继承 什么是继承?java特性继承又是什么?在线教育平台专家为你解答! 多个...

  • JAVA 核心笔记 || [7] 继承

    继承 被继承的类为 基类 或者 父类 类 只能单继承 不可同时继承多类 Animal.java Dog.java ...

  • 继承

    java中对于继承,java只支持单继承。java虽然不直接支持多继承,但是可实现多接口。 1:成员变量。当子父类...

  • 2017-12-29

    Java学习日记(4) 主要谈一下——继承extends 个 Tips : Java不像c++,Java是单继承(...

  • JAVA核心技术总结(五六章)继承&接口与内部类

    第五章 继承 在Java中,所有的继承都是公有继承,没有C++的私有继承和保护继承 Java同C++一样,子类不能...

  • Java初级笔记No.3(更新中)

    2018.7.26 1、Java中的继承 Java中使用extends关键字来说明继承关系。 2、继承的特性 ja...

  • Java中的继承

    Java中的继承 Java 继承 什么是继承 继承是用来描述“is-a”的关系;如果说两个对象A和B,若可以描述成...

网友评论

      本文标题:JAVA 继承

      本文链接:https://www.haomeiwen.com/subject/xbfpuxtx.html