Abstract类的实践之一
来源:互联网 发布:nginx 只允许访问图片 编辑:程序博客网 时间:2024/05/04 19:42
Abstract类的实践之一:
实例不完全正确,只是用来演示抽象类的部分实现和功能:
1 Graphic类:
package com;
public abstract class Graphic {
int x;
int y;
int r;
public static int pointX;
public static int pointY;
public abstract void getArea();
public abstract double getArea(int x,int y);
public abstract double getArea(int r);
public final void moveTo(int x,int y)
{
System.out.println("x:"+String.valueOf(x));
System.out.println("y:"+String.valueOf(y));
}
public void getPoint(int x,int y)
{
System.out.println("x:"+String.valueOf(x));
System.out.println("y:"+String.valueOf(y));
}
public static void setPoint(int x,int y)
{
System.out.println("pointX:"+String.valueOf(x));
System.out.println("pointX:"+String.valueOf(y));
}
}
public abstract class Graphic {
int x;
int y;
int r;
public static int pointX;
public static int pointY;
public abstract void getArea();
public abstract double getArea(int x,int y);
public abstract double getArea(int r);
public final void moveTo(int x,int y)
{
System.out.println("x:"+String.valueOf(x));
System.out.println("y:"+String.valueOf(y));
}
public void getPoint(int x,int y)
{
System.out.println("x:"+String.valueOf(x));
System.out.println("y:"+String.valueOf(y));
}
public static void setPoint(int x,int y)
{
System.out.println("pointX:"+String.valueOf(x));
System.out.println("pointX:"+String.valueOf(y));
}
}
2 Circle 类:
package com;
public class Circle extends Graphic {
private final double PI = 3.14;
@Override
public void getArea() {
System.out.println("Circle area");
}
public double getArea(int r) {
System.out.println(PI*r*r);
return(PI*r*r);
}
public double getArea(int x,int y) {
return x*y;
}
}
public class Circle extends Graphic {
private final double PI = 3.14;
@Override
public void getArea() {
System.out.println("Circle area");
}
public double getArea(int r) {
System.out.println(PI*r*r);
return(PI*r*r);
}
public double getArea(int x,int y) {
return x*y;
}
}
3 Rectangle 类:
package com;
public class Rectangle extends Graphic{
@Override
public void getArea() {
System.out.println("Rectangle area");
}
public double getArea(int r) {
return 0;
}
public double getArea(int x,int y) {
System.out.println(x*y);
return x*y;
}
}
public class Rectangle extends Graphic{
@Override
public void getArea() {
System.out.println("Rectangle area");
}
public double getArea(int r) {
return 0;
}
public double getArea(int x,int y) {
System.out.println(x*y);
return x*y;
}
}
测试类:
package test;
import com.Circle;
import com.Graphic;
import com.Rectangle;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
System.out.println("abstract test");
Graphic circle = new Circle();
circle.getArea();
circle.getArea(2, 3);
circle.moveTo(5, 6);
Graphic rect = new Rectangle();
rect.getArea();
rect.getArea(2, 3);
circle.moveTo(5, 6);
Graphic.setPoint(13, 15);
Graphic.pointX = 23;
System.out.println(Graphic.pointX);
System.out.println(Graphic.pointY);
}
}
import com.Circle;
import com.Graphic;
import com.Rectangle;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
System.out.println("abstract test");
Graphic circle = new Circle();
circle.getArea();
circle.getArea(2, 3);
circle.moveTo(5, 6);
Graphic rect = new Rectangle();
rect.getArea();
rect.getArea(2, 3);
circle.moveTo(5, 6);
Graphic.setPoint(13, 15);
Graphic.pointX = 23;
System.out.println(Graphic.pointX);
System.out.println(Graphic.pointY);
}
}
运行结果:
abstract test
Circle area
x:5
y:6
Rectangle area
6
x:5
y:6
pointX:13
pointX:15
23
0
修改Circle :
package com;
public class Circle extends Graphic {
private final double PI = 3.14;
@Override
public void getArea() {
System.out.println("Circle area");
}
public double getArea(int r) {
System.out.println(PI*r*r);
return(PI*r*r);
}
public double getArea(int x,int y) {
return x*y;
}
// ovrerride test
public void getPoint(int x,int y)
{
System.out.println("Circlex:" + String.valueOf(x));
System.out.println("Circley:" + String.valueOf(y));
}
}
public class Circle extends Graphic {
private final double PI = 3.14;
@Override
public void getArea() {
System.out.println("Circle area");
}
public double getArea(int r) {
System.out.println(PI*r*r);
return(PI*r*r);
}
public double getArea(int x,int y) {
return x*y;
}
// ovrerride test
public void getPoint(int x,int y)
{
System.out.println("Circlex:" + String.valueOf(x));
System.out.println("Circley:" + String.valueOf(y));
}
}
测试:
package test;
import com.Circle;
import com.Graphic;
import com.Rectangle;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
System.out.println("abstract test");
Graphic circle = new Circle();
circle.getArea();
circle.getArea(2, 3);
circle.getPoint(22, 33);
circle.moveTo(5, 6);
Graphic rect = new Rectangle();
rect.getArea();
rect.getArea(2, 3);
rect.moveTo(5, 6);
Graphic.setPoint(13, 15);
Graphic.pointX = 23;
System.out.println(Graphic.pointX);
System.out.println(Graphic.pointY);
}
}
import com.Circle;
import com.Graphic;
import com.Rectangle;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
System.out.println("abstract test");
Graphic circle = new Circle();
circle.getArea();
circle.getArea(2, 3);
circle.getPoint(22, 33);
circle.moveTo(5, 6);
Graphic rect = new Rectangle();
rect.getArea();
rect.getArea(2, 3);
rect.moveTo(5, 6);
Graphic.setPoint(13, 15);
Graphic.pointX = 23;
System.out.println(Graphic.pointX);
System.out.println(Graphic.pointY);
}
}
运行结果:
abstract test
Circle area
Circlex:22
Circley:33
x:5
y:6
Rectangle area
6
x:5
y:6
pointX:13
pointX:15
23
0
package com;
public class Circle extends Graphic {
private final double PI = 3.14;
public Circle()
{
System.out.println("this is a circle");
}
@Override
public void getArea() {
System.out.println("Circle area");
}
public double getArea(int r) {
System.out.println(PI*r*r);
return(PI*r*r);
}
public double getArea(int x,int y) {
return x*y;
}
// ovrerride test
public void getPoint(int x,int y)
{
System.out.println("Circlex:" + String.valueOf(x));
System.out.println("Circley:" + String.valueOf(y));
}
}
public class Circle extends Graphic {
private final double PI = 3.14;
public Circle()
{
System.out.println("this is a circle");
}
@Override
public void getArea() {
System.out.println("Circle area");
}
public double getArea(int r) {
System.out.println(PI*r*r);
return(PI*r*r);
}
public double getArea(int x,int y) {
return x*y;
}
// ovrerride test
public void getPoint(int x,int y)
{
System.out.println("Circlex:" + String.valueOf(x));
System.out.println("Circley:" + String.valueOf(y));
}
}
package com;
public class SubCircle extends Circle {
public SubCircle() {
super();
}
}
public class SubCircle extends Circle {
public SubCircle() {
super();
}
}
package test;
import com.Circle;
import com.Graphic;
import com.Rectangle;
import com.SubCircle;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
System.out.println("abstract test");
Graphic circle = new Circle();
circle.getArea();
circle.getArea(2, 3);
circle.getPoint(22, 33);
circle.moveTo(5, 6);
Graphic rect = new Rectangle();
rect.getArea();
rect.getArea(2, 3);
rect.moveTo(5, 6);
Graphic.setPoint(13, 15);
Graphic.pointX = 23;
System.out.println(Graphic.pointX);
System.out.println(Graphic.pointY);
SubCircle subC = new SubCircle();
subC.getArea();
subC.moveTo(111, 222);
}
}
import com.Circle;
import com.Graphic;
import com.Rectangle;
import com.SubCircle;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
System.out.println("abstract test");
Graphic circle = new Circle();
circle.getArea();
circle.getArea(2, 3);
circle.getPoint(22, 33);
circle.moveTo(5, 6);
Graphic rect = new Rectangle();
rect.getArea();
rect.getArea(2, 3);
rect.moveTo(5, 6);
Graphic.setPoint(13, 15);
Graphic.pointX = 23;
System.out.println(Graphic.pointX);
System.out.println(Graphic.pointY);
SubCircle subC = new SubCircle();
subC.getArea();
subC.moveTo(111, 222);
}
}
this is a circle
Circle area
Circlex:22
Circley:33
x:5
y:6
Rectangle area
6
x:5
y:6
pointX:13
pointX:15
23
0
this is a circle
Circle area
x:111
y:222
- Abstract类的实践之一
- Java的abstract类和abstract方法
- 关于BI实践的思考之一 背景
- 关于abstract类的实验
- 抽象类abstract的特点
- abstract抽象类的总结
- Java中的abstract方法和abstract类的问题
- Java中的abstract方法和abstract类的问题
- Java中的abstract方法和abstract类的问题
- Java中的abstract方法和abstract类的问题
- abstract,以及abstract抽象类与interface接口的区别
- abstract类
- abstract类和abstract方法
- abstract类和abstract方法
- abstract类和abstract方法
- abstract类和abstract方法
- abstract类和abstract方法
- abstract类和abstract方法
- 导出.net编写的exe/dll文件中Resource的方法
- 向诸葛亮学十堂课
- 简单文件系统
- iBATIS取出结果集的每个字段值,泛型实现
- Ubuntu 8.04 装 ROR
- Abstract类的实践之一
- JVM深度历险小记
- 用OpenInventor实现的NeHe OpenGL教程-第三十课
- 发布一个自动判断用户选择网络接入点的JavaME应用。
- 一个我上传的文件,不能解压的问题!
- 巧用VB2005中开发新一代控制台的应用程序
- HTTP 1.1状态代码及其含义
- 常用JDBC连接方法
- sql中内联 和外联 区别