java中继承于多态 抽象类和接口的例子

如题所述

首先我来给你举个例子:一个抽象的乐器类abstract Instrument.它里面有一个抽象的方法abstract void play();(提醒一下,没有方法体)。
然后有其它的几个不同的乐器(比如Wind、Percussion、Stringed)来继承了前面的乐器抽象类,你应该知道,继承一般要重写基类的方法并实现,所以Wind、Percussion、Stringed都需要去重写play方法。
比如Wind重写后是这样的public void paly() {System.out.println("这是Wind的play().")}。Percussion重写后是这样的public void paly() {System.out.println("这是Percussion的play().")}。Stringed重写后是这样的public void paly() {System.out.println("这是Stringed的play().")}。
你实例化类Wind、Percussion、Stringed的对象,它们的引用分别为W,P,S。
此时你这样调用W.play();P.play();S.play();
出来的结果分别是:这是Wind的play().这是Percussion的play().这是Stringed的play().
你看,这样就实现了多态。接口和抽象类有点类似,实现接口,然后去实现接口的中定义的方法。
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-10-29

【JAVA基础】一个案例搞懂类、对象、重载、封装、继承、多态、覆盖...
方法二:将calcuVolume方法定义在Geometry抽象类中。那么,如何才能优雅地解决这个问题呢? 详见如下代码:2.3 代码分析 以上代码用到了以下概念: 接口(Interface):接口不是类,而是对希望符合这个接口的类的一组需求。可以说接口是比抽象更抽象的概念。抽象类还提供某些具体实现,而接口不提供任何实现...

1.求解用java写(如三角形,矩型,圆)的的周长,面积,要求用到继承,多态...
1.求解用java写(如三角形,矩型,圆)的的周长,面积,要求用到继承,多态,抽象类,接口,内部类等。 10 小环201314 | 浏览2850 次 |举报 我有更好的答案推荐于2017-12-15 13:49:36 最佳答案 \/\/抽象的形状类 public abstract class Shape{ }\/\/接口 public interface IDisplay{ void display(); \/\/显示图形...

JAVA 作业 实验名称:接口,继承与多态
double pi = 3.14;public double area(){return pi*r*r;}public double perimeter(){return 2*pi*r;}}Rectangle: package com.test.abstr;public class Rectangle extends Shape {double a = 3;double b = 4;public double area() {return a*b;}public double perimeter() {return 2*(a...

java继承多态和抽象类接口?
public class 子类extends 父类{} (4)继承的单根性:在Java中一个类只能有一个父类;传递性:一个Java类可以父类,父类也可以有父类。(5)所有类的根类:Object类,又叫基类或超类。Object类是每个Java类的父类,要么是直接的父类,要么就是间接的父类。Object类中的三个重要方法:①public bool...

JAVA为什么说抽象类是实现多态的一种途径。
首先我来给你举个例子:一个抽象的乐器类abstract Instrument.它里面有一个抽象的方法abstract void play();(提醒一下,没有方法体)。然后有其它的几个不同的乐器(比如Wind、Percussion、Stringed)来继承了前面的乐器抽象类,你应该知道,继承一般要重写基类的方法并实现,所以Wind、Percussion、Stringed...

JAVA中的继承和多态问题,问题解决再多加50财富,谢谢! 要求利用继承和多 ...
MyCircle文件 import static java.lang.Math.*;public class MyCircle extends MyShape { private double radius;Override public double getS() { return PI * pow(radius, 2);} Override public double getL() { return 2 * PI * radius;} public double get_radius() { return radius;} pub...

运行时实现Java的多态性
一、通过继承中超类对象引用变量引用子类对象来实现 举例说明:\/\/定义超类superA class superA { int i = 100;void fun(){ System.out.println(“This is superA”);} } \/\/定义superA的子类subB class subB extends superA { int m = 1;void fun(){ System.out.println(“This is subB”...

Java基础封装继承多态
封装、继承和多态是面向对象编程的三大特性。封装 封装的目的是为了保证变量的安全性,使用者不必在意具体实现细节,而只是通过外部接口即可访问类的成员,如果不进行封装,类中的实例变量可以直接查看和修改,可能给整个代码带来不好的影响,因此在编写类时一般将成员变量私有化,外部类需要同getter和setter方法来查看和设置变量...

java编程 类的继承及多态
共六个类:Vehicle.java(车类), Car.java(轿车类), Bus.java(公共汽车类), Engine.java(发动机), VehicleFactory.java(汽车工厂) 和 VehicleTest.java(测试类),具体代码分别如下:abstract class Vehicle { Engine engine;double speed;double mileage;public Vehicle() { } public Vehicle...

java接口和抽象类的区别举例
子类实现接口(implements)4)关系:抽象类可以实现多个接口;接口不能继承抽象类,但允许继承多个接口。5)常见设计模式:抽象类的常见设计模式是模板设计;接口的常见设计模式是工厂设计和代理设计。6)对象:抽象类和借口都是通过对象的多态性昌盛实例化对象。7)局限:抽象类只能单继承;接口没有单继承...

相似回答
大家正在搜