package unit4;
import java.awt.Graphics; public interface Shape {
void drowme(Graphics g);
double area();
double length();
String getName(); }
package unit4;

import java.awt.Graphics;

public class Point implements Shape{
int x,y;
Point (int x,int y){this.x=x;this.y=y;} public double area() {
// TODO Auto-generated method stub
return 0;
}
public void drowme(Graphics g) {
g.fillOval(x,y,5,5); }
public String getName() {
// TODO Auto-generated method stub
return "Point";
}
public double length() {
// TODO Auto-generated method stub
return 0;
}
}
package unit4;

import java.awt.Graphics;

public class Triangle implements Shape {
Point a,b,c;
public Triangle(Point aa,Point bb,Point cc) {
// TODO Auto-generated constructor stub
a=aa;
b=bb;
c=cc; } public double area() { double a_b=Math.sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));
double a_c=Math.sqrt((a.x-c.x)*(a.x-c.x)+(a.y-c.y)*(a.y-c.y));
double b_c=Math.sqrt((b.x-c.x)*(b.x-c.x)+(b.y-c.y)*(b.y-c.y));
double l=(a_b+a_c+b_c)/2;
double s=Math.sqrt((l-a_b)*(l-b_c)*(l-a_c)*l);
return s;
} public void drowme(Graphics g) {
g.drawLine(a.x,a.y,b.x,b.y);
g.drawLine(a.x,a.y,c.x,c.y);
g.drawLine(b.x,b.y,c.x,c.y); } public String getName() {
return "triangle";
} public double length() {
double a_b=Math.sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));
double a_c=Math.sqrt((a.x-c.x)*(a.x-c.x)+(a.y-c.y)*(a.y-c.y));
double b_c=Math.sqrt((b.x-c.x)*(b.x-c.x)+(b.y-c.y)*(b.y-c.y));
double l=(a_b+a_c+b_c);
return l;
} }
package unit4;

import java.awt.Graphics;

public class Circl implements Shape {

    Point c;
int r;
public Circl(Point cc,int rr) {
c=cc;
r=rr;
}
public double area() {
return 3.14159*r*r;
} public void drowme(Graphics g) {
g.drawOval(c.x-r,c.y-r,2*r,2*r); } public String getName() {
return "circle";
} public double length() {
return 2*3.14159*r;
} }
package unit4;

import java.awt.Graphics;

public class Rect implements Shape{
Point a,b;
Rect(Point aa,Point bb){a=aa;b=bb;} public double area() { return (a.x-b.x)*(a.y-b.y);
} public void drowme(Graphics g) {
g.drawRect(a.x,a.y,b.x-a.x,b.y-a.y); } public String getName() {
return "rectangle";
} public double length() {
return (b.x-a.x)*2+(b.y-a.y)*2;
} }
package unit4;

import java.applet.Applet;
import java.awt.Graphics; public class Shapetest extends Applet{
Shape[]myshapes=new Shape[5];
public void init() { Point a0=new Point(50,50);
Point a1 = new Point(24,24);
Point a2=new Point(100,200);
Point a3 = new Point(200,120);
myshapes[0]=a0;
myshapes[1]=new Triangle(a1,a2,a3);
myshapes[2]=new Circl(a2,50);
myshapes[3]=new Circl(a3,100);
myshapes[4]=new Rect(new Point(100,100),new Point(200,200)); }
public void paint(Graphics g){
for(int i=0;i<myshapes.length;i++){
myshapes[i].drowme(g);
System.out.println(myshapes[i].getName()+": area: "+myshapes[i].area()+", length: "+myshapes[i].length());
}
} }

这里可以直接在eclipse上运行位applet,但是,我发现一个严重的问题,我没法部署网站,哎,先不管了,以后用到了在慢慢调吧。

每次都要费老大劲配置。我日。。

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<applet code="shapetest.class" width=400 height=400>
</applet> </body>
</html>

理论上,配置成功可以在网页上启动小程序的。

java 接口实现多态的更多相关文章

  1. Java 接口和多态

    接口 1.1 接口的概述 接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的”类”. 接口只描述所应该具备的方法,并没有具体实现,具体的实现由接口的实现类(相当于接口的子类)来完成.这样 ...

  2. Java接口与多态

    接口 可以理解为一种特殊的类,里面全部是由全局常量(static final)和公共的抽象方法所组成 接口的定义格式 接口的数据成员,只允许被public, static, final修饰. 接口的方 ...

  3. Java 接口和多态练习

    我们鼠标和键盘实现USB接口,那么我们鼠标和键盘就变成了USB设备,这时候我们就可以把它放到笔记本电脑里面去用 package com.biggw.day10.demo07; /** * @autho ...

  4. Java基础学习笔记八 Java基础语法之接口和多态

    接口 接口概念 接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的”类”.接口只描述所应该具备的方法,并没有具体实现,具体的实现由接口的实现类(相当于接口的子类)来完成.这样将功能的定义 ...

  5. Java开发知识之Java的继承多态跟接口*

    Java开发知识之Java的继承多态跟接口 一丶继承 1.继承的写法 在Java中继承的 关键字是 extends 代表一个类继承另一个类. 继承的含义以及作用: 继承就是基于某个父类的扩展.制定出来 ...

  6. Java 基础 接口和多态

    接口 接口的概念 接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的”类”. 接口只描述所应该具备的方法,并没有具体实现,具体的实现由接口的实现类(相当于接口的子类)来完成.这样将功能的 ...

  7. Java 面向对象之接口、多态

    01接口的概念 A:接口的概念 接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的”类”. 接口只描述所应该具备的方法,并没有具体实现,具体的实现由接口的实现类(相当于接口的子类)来完成 ...

  8. Java学习笔记——继承、接口、多态

    浮点数的运算需要注意的问题: BigDecimal operand1 = new BigDecimal("1.0"); BigDecimal operand2 = new BigD ...

  9. java抽象类、多态、接口

    抽象类 抽象类的产生 当编写一个类时,我们往往会为该类定义一些方法,这些方法是用来描述该类的功能具体实现方式,那么这些方法都有具体的方法体. 但是有的时候,某个父类只是知道子类应该包含怎么样的方法,但 ...

随机推荐

  1. HDU 17新生赛 正品的概率【数论-概率论】

    正品的概率 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  2. HNOI2004 郁闷的出纳员(Splay)

    郁闷的出纳员 OIER公司是一家大型专业化软件公司,有着数以万计的员工.作为一名出纳员,我的任务之一便是统计每位员工的工资.这本来是一份不错的工作,但是令人郁闷的是,我们的老板反复无常,经常调整员工的 ...

  3. UOJ 180【UR #12】实验室外的攻防战

    http://uoj.ac/contest/25/problem/180 从前往后对比串A,B 当$A_i,B_i$不相同时找到$B_i$在A中的位置j 若$min{A_1,A_2,A_3...... ...

  4. 【BZOJ3524】Couriers

    题面 Description 给一个长度为\(n\)的序列\(a\).\(1\le a[i]\le n\). \(m\)组询问,每次询问一个区间\([l,r]\),是否存在一个数在\([l,r]\)中 ...

  5. JMeter之Ramp-up Period(in seconds)说明(可同时并发)(转载)

    Ramp-up Period(in seconds) [1]决定多长时间启动所有线程.如果使用10个线程,ramp-up period是100秒,那么JMeter用100秒使所有10个线程启动并运行. ...

  6. Android background tint颜色渲染

    该篇文章主要是讲Android颜色渲染,首先先来看看PorterDuff,对绘图非常重要. PorterDuff的由来: 相信大多数人看到这个ProterDuff单词很奇怪了吧,这肿么个意思呢,然后就 ...

  7. Console-算法:fun1(do while)

    ylbtech-Arithmetic:Console-算法[do while]-XX   1.A,Demo(案例) 1.B,Solution(解决方案) using System; namespace ...

  8. [ACM] POJ 1035 Spell checker (单词查找,删除替换添加不论什么一个字母)

    Spell checker Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 18693   Accepted: 6844 De ...

  9. Git的微操作

    合并分支代码,简单操作: 1.切换到master主干代码 2.到git repositories 视图,点击需要合并的分支,例如v1.1.9 点击merge 进行合并 3.然后push to Upst ...

  10. [PWA] Add Push Notifications to a PWA with React in Chrome and on Android

    On Android and in Chrome (but not on iOS), it's possible to send push notifications with a PWA. We'l ...