《Java中的抽象类及抽象类的作用》
2016-05-01 16:41
567 查看
//抽象类示例: 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()); } }
相关文章推荐
- struts2基本介绍以及环境配置
- Java中的四种内部类
- 《Java程序设计》实验四 实验报告
- Eclipse中 package 中创建新package 会分离的问题
- Struts2在开发中的一些异常总结(持续更新)
- eclipse color theme 主题颜色
- JVM指令集(指令码、助记符、功能描述)
- springmvc自定义拦截器
- 《Java程序设计》第9周学习总结
- 安卓java.lang.IllegalArgumentException: The observer is null.解决方案
- 安卓java.lang.IllegalArgumentException: The observer is null.解决方案
- 实现Struts2中对未登录的jsp页面进行拦截功能(采用的是Struts2中过滤器进行过滤拦截)
- 确定Java开发中.jar包的JDK版本
- JavaBean与Jsp
- java之List接口
- java运行jar包中指定Class的main方法
- 警告 spring boot 加载beans的顺序
- Java中ThreadLocal的使用(转载)
- 平衡二叉树Java语言实现
- eclipse 创建 maven springmvc工程