public class Shape{
private String name;
protected double area;
public Shape(String name){
this.name=name;
}
public String getName(){
return this.name;
}
public double countArea(){
return 0.0;
}
}
class Rectangle extends Shape{
private double length,width;
public Rectangle(String name,double length,double width){
super(name);
this.length=length;
this.width=width;
}
public double countArea(){
return this.area=length*width;
}
}
class Triangle extends Shape{
private double length,width;
public Triangle(String name,double length,double width){
super(name);
this.length=length;
this.width=width;
}
public double countArea(){
return this.area=1/2*length*width;
}
}
class Circle extends Shape{
private double r;
public Circle (String name,double r){
super(name);
this.r= r;
}
public double countArea(){
return this.area=Math.PI*Math.pow(r,2.0);
}
}
class TestShape{
public static void calShapeArea(Shape r){
System.out.println(r.countArea());
}
public static void main(String[] args){
Shape r = new Rectangle("矩形",58,76);
calShapeArea(r);
r = new Circle("圆形",12);
calShapeArea(r);
r= new Triangle("三角形",378,38);
calShapeArea(r);
r= new Circle("圆形",38);
calShapeArea(r);
}
}
public interface ShapeInterface{
public static final double PI=3.1415926;
public static void countArea();
public static double getArea();
}
interface comparableShape extends ShapeInterface{}
class CircleImpl implements ShapeInterface{
private double r;
private double area;
public CircleImpl(double r){
this.r=r;
}
public void countArea(){
this.area = this.PI * Math.pow(r,2.0);
}
public double getArea(){return area;}
}
class Triangle implements ShapeInterface{
private double length;
private double width;
private double area;
public void countArea(){
this.area= 1/2*length*width;
}
public double getArea(){return area;}
}
class ShapeInterfaceApp{
public static void printShapeArea(ShapeInterface shape){
shape.countArea();
System.out.println(shape.getArea());
}
public static void main(String[] args){
ShapeInterface circle = new CircleImpl(23.4);
printShapeArea(circle);
}
}
分享到:
相关推荐
这个小例子可能是为了演示如何在Java中实现继承以及它所带来的优势。 首先,我们来理解继承的基本概念。当我们说一个类B继承自类A,我们可以表示为`class B extends A`。这意味着B类自动拥有了A类的所有非私有...
在这个经典的Java继承例子中,我们将深入理解这一机制。 首先,我们要明确的是,继承的主要目的是减少代码冗余,提高代码的可维护性和可扩展性。在Java中,我们使用`extends`关键字来表示一个类继承自另一个类。...
标题"继承的小例子"暗示我们将讨论关于Java继承的一些基础实例。 首先,让我们深入理解Java继承的概念。当一个子类继承一个父类时,子类就自动获得了父类的所有非私有(public和protected)成员,包括字段和方法。...
总结,这个例子展示了如何利用JavaScript的原型链来实现类继承,包括构造函数的调用、方法的重写和扩展,以及实例化和类型检查等概念。通过这种方式,我们可以创建一个类层次结构,使得子类可以继承并扩展父类的功能...
在这个例子中,`Dog`类继承了`Animal`类,并添加了一个新的成员函数`bark()`。由于继承,`Dog`类的对象可以调用`eat()`方法,这是从`Animal`类继承而来的。 接下来,我们来谈谈多态。多态有两种类型:静态多态...
"VC类继承例子"这一主题将深入探讨如何在Visual C++中利用继承来设计更加灵活和可扩展的软件结构。 首先,我们需要理解继承的基本概念。继承允许我们定义一个基类,其中包含了一些通用的属性和方法,然后创建一个或...
在这个“C# 接口与继承的例子源代码”中,我们可以看到如何通过这两种机制来设计和实现类的结构。 接口是一种纯抽象类型,它定义了一组方法签名,但不包含任何方法的实现。通过声明类实现了某个接口,类就必须提供...
在C++编程语言中,封装、...通过学习和实践这些例子,开发者能够更好地理解和掌握C++的面向对象编程技巧,从而编写出更高效、更易于维护的代码。在实际开发中,封装、继承和多态是设计模块化、可扩展系统的关键工具。
C++中public继承、private继承、protected继承的例子
在真正的Web站点和应用程序中,几乎不可能创建名为ClassA和ClassB的类,更可能的是创建表示特定事物(如形状)的类。考虑本章开头所述的形状的例子,Polygon、Triangle和Rectangle类就构成了一组很好的探讨数据。
这个例子展示了如何在自定义的Action类中继承`ActionSupport`,从而利用其内置的特性。 首先,`ActionSupport`类是所有Struts2 Action类的基类,它包含了以下几个关键功能: 1. **字段验证**:`ActionSupport`提供...
在这个例子中,`ChildClass`继承了`ParentClass`的所有非私有(public和protected)成员。这意味着`ChildClass`对象可以访问`ParentClass`中的公共和受保护的方法及变量。 接下来,我们将深入到`Tryextend.java`的...
这个例子将深入探讨C#中的对象继承机制。 首先,我们需要理解继承的基本语法。在C#中,子类通过使用冒号(:)来表示对父类的继承,并在类定义中指定。例如: ```csharp public class ParentClass { public int ...
在C#编程语言中,多态(Polymorphism)、继承(Inheritance)和接口(Interface)是面向对象编程的三大核心特性。结构(Struct)则是C#中的一个基本类型,与类(Class)有所不同。本篇文章将深入探讨这些概念,并...
c#中继承是单继承,子类:父类的定议方式。...除了private修饰的字段、属性、方法不能被子类继承,其他的都可以被子类继承,下载中的例子用了一个爷爷、爸爸、儿子的关系,用简单的讲解讲述了C#中继承的用法。
Java继承例子.doc
通过一个具体的例子,我们将帮助初学者更好地理解和体会虚拟继承的工作原理。 首先,我们需要理解什么是继承。继承是面向对象编程的一个核心特性,它允许一个类(子类或派生类)从另一个类(父类或基类)中获取属性...
在C#编程语言中,"继承"和...通过这三个小例子,初学者可以直观地了解C#中的继承和多态,并在实践中加深理解。在实际编程中,这两个特性不仅简化了代码结构,还提高了程序的灵活性和扩展性,是C#开发者必备的技能。
本资源是一个关于C#对象关系继承的简单例子,旨在帮助学习者更好地理解和应用这一概念。在Java教程中,虽然两者语法有差异,但对象关系继承的基本原理是相通的,因此这个C#的例子同样适用于Java学习者。 对象关系...