//抽象类示例:
abstract class Shape1
{
{
System.out.println("执行Shape的初始化块...");
}
private String color;
//定义一个计算周长的抽象方法,
public abstract double calPerimeter();
//定义一个返回形状的抽象方法,
public abstract String getType();
//定义Shape的构造器,该构造器并不是用于创建Shape对象,而是用于创建子类调用
public Shape1(){}
public Shape1(String color)
{
System.out.println("执行Shape的构造器...");
this.color = color;
}
public void setColor(String color){this.color = color;}
public String getColor(){return color;}
} class Triangle extends Shape1
{
//定义三角形的三边
private double a;
private double b;
private double c;
public Triangle(String color,double a,double b,double c)
{
super(color);
this.setSides(a,b,c);
}
public void setSides(double a,double b,double c)
{
if(a>b+c || b>a+c || c>a+b)
{
System.out.println("三角形两边之和必须大于第三边");
return;
}
this.a = a;
this.b = b;
this.c = c;
}
//重写Shape类的计算周长的抽象的方法
public double calPerimeter()
{
return a+b+c;
}
//重写Shape类的返回形状的抽象的方法
public String getType()
{
return "三角形";
}
} public class AbstractTest
{
public static void main(String[] args)
{
Shape1 s1 = new Triangle("黑色",3,4,5);
System.out.println(s1.getType());
System.out.println(s1.calPerimeter());
}
}
 //抽象类的作用;模板作用(本例中:
//抽象的父类中,父类的普通方法依赖于一个抽象方法,而抽象方法则推迟到子类中
//去实现)
abstract class SpeedMeter
{
private double turnRate;
public SpeedMeter(){}
public abstract double getRadius();
public void setTurnRate(double turnRate)
{
this.turnRate = turnRate;
}
//定义计算速度的方法
public double getSpeed()
{
//速度等于车轮半径*2*PI*转速
return java.lang.Math.PI * 2 * getRadius() * turnRate;
}
}
public class CarSpeedMeter extends SpeedMeter
{
public double getRadius()
{
return 0.28;
}
public static void main(String[] args)
{
CarSpeedMeter csm = new CarSpeedMeter();
csm.setTurnRate(15);
System.out.println(csm.getSpeed());
}
}

《Java中的抽象类及抽象类的作用》的更多相关文章

  1. 简单物联网:外网访问内网路由器下树莓派Flask服务器

    最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ...

  2. 利用ssh反向代理以及autossh实现从外网连接内网服务器

    前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...

  3. 外网访问内网Docker容器

    外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...

  4. 外网访问内网SpringBoot

    外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...

  5. 外网访问内网Elasticsearch WEB

    外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...

  6. 怎样从外网访问内网Rails

    外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...

  7. 怎样从外网访问内网Memcached数据库

    外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...

  8. 怎样从外网访问内网CouchDB数据库

    外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...

  9. 怎样从外网访问内网DB2数据库

    外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...

  10. 怎样从外网访问内网OpenLDAP数据库

    外网访问内网OpenLDAP数据库 本地安装了OpenLDAP数据库,只能在局域网内访问,怎样从外网也能访问本地OpenLDAP数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动 ...

随机推荐

  1. Android实现归属地查询功能

    实现归属地查询大体有两种方法可以实现,一种是通过归属地API进行查询,另一种是查询本地数据库.两种方法各有优劣,最好结合起来使用,我本次采用的是查询数据库的方法.首先需要从网上下载归属地数据库call ...

  2. jQuery Validate input是动态变化的

    表单验证 $("#dataList").append("<div id='data"+dataNum+"' style='padding-top ...

  3. maven 编译插件

    <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compi ...

  4. CSS中的浮动问题

    有关于我们经常做的导航问题.我们如果想用ul>li来做导航的话,我是一般是用到浮动这个属性的. 也就是 float:left; 或者是 display:inline-block;  下边代码: ...

  5. Auty自动化测试框架第五篇——框架内部的调用支持、自动化安装库与配置说明

    [本文出自天外归云的博客园] 本次对Auty自动化测试框架做些收尾工作,由于在scripts文件夹中的脚本会需要调用其他包结构文件夹中的脚本,所以这里需要添加一下框架对于内部脚本间互相调用的支持,这里 ...

  6. rmi远程调用

    1.在服务器端程序中的spring-servlet.xml中添加 <bean id="userService" class="org.springframework ...

  7. react native 学习资料汇总

    http://www.ejiakt.com/album/show/252 http://www.cocoachina.com/ios/20150408/11513.html http://www.os ...

  8. [转](五)unity4.6Ugui中文教程文档-------概要-UGUI Interaction Components

    大家好,我是孙广东.   转载请注明出处:http://write.blog.csdn.net/postedit/38922399 更全的内容请看我的游戏蛮牛地址:http://www.unityma ...

  9. 基于chrome内核的UXSS

    url with a leading NULL byte can bypass cross origin protection. https://code.google.com/p/chromium/ ...

  10. JavaScript 获取当前时间戳

    转自博客(http://blog.sina.com.cn/s/blog_8772845101019kg5.html) JavaScript 获取当前时间戳:第一种方法: var timestamp = ...