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));
    }

}


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;
    }

    
}


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;
    }

}



测试类:
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(
23);
        
        circle.moveTo(
56);
        
        Graphic rect 
= new Rectangle();
        
        rect.getArea();
        rect.getArea(
23);
        circle.moveTo(
56);
        
        Graphic.setPoint(
1315);
        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));
    }

    
}


测试:
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(
23);
        circle.getPoint(
2233);
        circle.moveTo(
56);
        
        Graphic rect 
= new Rectangle();
        
        rect.getArea();
        rect.getArea(
23);
        rect.moveTo(
56);
        
        Graphic.setPoint(
1315);
        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));
    }

    
}

package com;

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(
23);
        circle.getPoint(
2233);
        circle.moveTo(
56);
        
        Graphic rect 
= new Rectangle();
        
        rect.getArea();
        rect.getArea(
23);
        rect.moveTo(
56);
        
        Graphic.setPoint(
1315);
        Graphic.pointX 
= 23;
    
        System.
out.println(Graphic.pointX);
        System.
out.println(Graphic.pointY);
        
        SubCircle subC 
= new SubCircle();
        subC.getArea();
        subC.moveTo(
111222);
    }


}

abstract test
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

原创粉丝点击