`

抽象类继承

    博客分类:
  • java
阅读更多
abstract class Type {									//创建一个抽象类Type
//声明数据成员
	double height, width, length;						//长,宽,高
	String name;									//名字
//定义抽象方法
	abstract double area();							//面积()
	abstract String getName();						//获取名字()
	public Type(double heigth, double width) {				//抽象类的构造方法
		this.height = heigth;
		this.width = width;
	}
	public Type(double heigth, double width, double length) {//抽象类的构造方法
		this.height = heigth;
		this.width = width;
		this.length = length;
	}
public void setName(String name) {						//给抽象类的name属性赋值
		this.name = name;
	}
}
class Triangle extends Type {							//创建一个三角形的子类继承抽象类
	public Triangle(double height, double width) {			//给抽象类的数据成员赋初值
		super(height, width);
	}
	double area() {									//三角形的面积公式
		return height * width / 2;
	}
	String getName() {								//获取名字()
		return name;
	}
}
class Trapezoidal extends Type {						//创建一个梯形的子类继承抽象类
	public Trapezoidal(double height, double width, double length) {//给抽象类的数据成员赋初值
		super(height, width, length);
	}
	double area() {									//梯形的面积公式
		return (height + width) * length / 2;
	}
	String getName() {								//获取名字()
		return name;
	}
}
public class AbstractTest {
	public static void main(String[] args) {
		Triangle t = new Triangle(23, 2);				//创建Triangle类的对象并初始化
		Trapezoidal tz = new Trapezoidal(12, 34, 2);		//创建Trapezoidal类的对象并初始化
		t.setName("三角形的面积");
		tz.setName("梯形的面积");
		System.out.println(t.getName() + " " + t.area());
		System.out.println(tz.getName() + " " + tz.area());
	}
}
分享到:
评论

相关推荐

    c++抽象类继承

    `Student` 类继承自 `UniversityObject`,并实现了 `getSummary()` 函数。该函数返回学生的注册号和姓名组成的字符串。构造函数接受两个字符串参数,分别用于初始化 `name` 和 `register_str` 成员变量。通过这种...

    C# 多态教材 e.g 抽象类继承的武器场景示例

    C# 多态 抽象类继承的武器场景示例 接口实现的开火场景示例 虚方法的武器场景示例

    C#抽象类详解文档.doc

    4. **子类必须实现所有抽象成员**:如果一个类从抽象类继承,它必须实现所有未被其自身声明为抽象的抽象成员。否则,子类也会变成抽象类。 5. **抽象类可以包含非抽象成员**:除了抽象成员,抽象类也可以包含具有...

    抽象类 接口

    - **抽象类可以继承抽象类**:这体现了类与类之间的继承关系,一个抽象类可以从另一个抽象类继承属性和方法,并可以进一步添加自己的特性和抽象方法。 - **抽象类不可以继承接口**:抽象类与接口之间的关系只能是...

    abstract抽象类

    3. **非抽象类继承抽象类**:当一个非抽象类(普通类)继承抽象类时,它必须实现抽象类中所有的抽象方法。如果未实现所有抽象方法,那么这个非抽象类也必须被声明为抽象类。在示例中,`Goddess` 和 `Uglywomen` 类都...

    java中的抽象类和接口的理解

    5. **抽象类只能被一个子类继承**:一个类可以从多个接口继承,但是只能从一个抽象类继承。 #### 三、接口(Interface) 接口是一种完全抽象的类型,用于定义一组方法签名而不提供任何实现。接口可以看作是一组...

    C#中抽象类和接口的区别.txt

    2. **继承**:一个类可以从抽象类继承,并且可以选择性地覆盖抽象成员以提供具体实现。 3. **特性**:抽象类可以拥有构造函数、字段、属性、方法等,包括非抽象成员的实现。 4. **限制**:一个类只能直接继承一个...

    Java抽象类高难度面试题及解析

    - 抽象类可以被其他抽象类继承,子抽象类可以扩展或保持抽象状态。 12. **final方法**: - 抽象类中的非抽象方法可以是final的,防止子类重写,但抽象方法不能是final的。 13. **实现多个接口**: - 抽象类可以...

    Java继承_抽象类与接口的应用.

    1.继承及继承实例 2.方法重写(Overwrite) 3.super关键字 4.方法重载(Overload) 5.final修饰符 6.abstract修饰符 7.抽象类 8.接口 9.接口和抽象类对比 10.接口和抽象类使用场合实例 11.总结

    表面积和体积_抽象类Shape_shape类继承_

    在这个系统中,"表面积和体积_抽象类Shape_shape类继承_"这个主题涉及到的是OOP中的一个重要概念——抽象类和类的继承。 首先,让我们来理解抽象类(Abstract Class)。抽象类是一种特殊的类,它不能被实例化,主要...

    抽象类实例联系资源

    当一个非抽象类继承自抽象类时,它必须实现抽象类中的所有抽象方法。如果未实现这些方法,则该派生类也必须声明为抽象类。在这个例子中,`myname`类继承自`myfirstabs`抽象类,并实现了`myifo`抽象方法: ```csharp...

    使用抽象类继承实现:“剪刀石头布的游戏”

    这个程序通过抽象类继承来设计玩家类,并实现游戏逻辑。以下是详细的知识点解释: 1. **抽象类与继承**: - 抽象类(`Player`)被用来定义玩家的基本属性(如姓名`name`和等级`grade`)和行为(如`show()`方法)。...

    抽象类和接口的区别

    这意味着一个类可以从一个抽象类继承,同时实现多个接口,增强了类的复用性和灵活性。 **代码实现:** 在抽象类中,可以提供部分或全部方法的默认实现,这有助于简化子类的实现。相比之下,接口中的方法默认是抽象...

    一个使用了接口,抽象类,继承的JAVA类

    一个使用了接口,抽象类,继承的JAVA类,模拟了计算机的组装过程

    Java抽象类 一篇文章详解

    如果一个非抽象类继承了抽象类,那么它必须实现所有未实现的抽象方法,除非这个类也被声明为抽象类。 4. **接口与抽象类的区别**:抽象类可以包含字段和非抽象方法的实现,而接口只能包含常量和抽象方法。一个类可以...

    Java抽象类和接口和继承之间关系

    "Java抽象类和接口和继承之间关系" Java抽象类和接口是两种不同的概念,它们之间存在着继承关系。在Java中,抽象类(abstract class)和接口(interface)都是用来描述对象的行为和状态的,但它们之间有着明显的...

    类的继承、抽象类、虚方法实现

    抽象类是一种不能被实例化的类,它用于定义共同接口,供其他类继承。在C#中,我们使用`abstract`关键字声明抽象类。例如,我们可能有一个`Animal`抽象类,其中包含一个抽象方法`MakeSound()`: ```csharp public ...

    JAVA 继承基本类、抽象类、接口区别与联系

    3. **继承性**:抽象类可以被其他类继承,一个类可以继承多个抽象类的功能(通过多层继承实现)。 4. **方法实现**:抽象类中的非抽象方法具有实际的实现,而抽象方法需要由子类提供实现。 #### 四、接口 **定义**...

    继承,虚函数,抽象类

    在编程世界中,继承、虚函数和抽象类是面向对象编程(OOP)中的核心概念。这三者共同构建了类的层次结构,使得代码更加模块化,易于维护和扩展。接下来,我们将深入探讨这三个概念及其相关用法。 首先,**继承**是...

Global site tag (gtag.js) - Google Analytics