java接口能实现多态吗_java 接口实现多态

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[i].drowme(g);

System.out.println(myshapes[i].getName()+": area: "+myshapes[i].area()+", length: "+myshapes[i].length());

}

}

}

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

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

Insert title here

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

Java 接口和多态

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

Java接口与多态

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

Java 接口和多态练习

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

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

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

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

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

Java 基础 接口和多态

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

Java 面向对象之接口、多态

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

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

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

java抽象类、多态、接口

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

随机推荐

itrator控制迭代次数

Git 安装

安装参考资料: http://lzw.me/a/msysgit-tortoisegit-win-git.html http://blog.csdn.net/qwiwuqo/article/detail ...

HTML CSS3 手风琴菜单

careercup-树与图 4.9

4.9 给定一颗二叉树,其中每个结点都含有一个数值.设计一个算法,打印结点数值总和等于某个给定值的所有路径.注意,路径不一定非得从二叉树的根节点或叶子节点开始或结束. 类似于leetcode:Path ...

canvas-画七巧板

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值