PTA(JAVA)实验三3

  • Post author:
  • Post category:java


前言:


记录本人在学习JAVA的一点心得体会,且用于复盘和学习。又是被Java折磨的一天QAQ。好了,不多说直接上题。


7-1 jmu-Java-03面向对象基础-05-覆盖

Java每个对象都继承自Object,都有equals、toString等方法。

现在需要定义

PersonOverride

类并覆盖其

toString



equals

方法。

1. 新建

PersonOverride


a.

属性



String name



int age



boolean gender

,所有的变量必须为私有(private)。

b.

有参构造方法

,参数为

name, age, gender

c.

无参构造方法

,使用

this(name, age,gender)

调用有参构造方法。参数值分别为

"default",1,true

d.

toString()

方法返回格式为:

name-age-gender

e.

equals

方法需比较name、age、gender,这三者内容都相同,才返回

true

.

2. main方法

2.1 输入n1,使用无参构造方法创建n1个对象,放入数组persons1。

2.2 输入n2,然后指定

name age gender

。每创建一个对象都使用equals方法比较该对象是否已经在数组中存在,如果不存在,才将该对象放入数组persons2。

2.3 输出persons1数组中的所有对象

2.4 输出persons2数组中的所有对象

2.5 输出persons2中实际包含的对象的数量

2.5 使用

System.out.println(Arrays.toString(PersonOverride.class.getConstructors()));

输出PersonOverride的所有构造方法。


提示:

使用

ArrayList

代替数组大幅复简化代码,请尝试重构你的代码。

输入样例:

1
3
zhang 10 true
zhang 10 true
zhang 10 false

输出样例:

default-1-true
zhang-10-true
zhang-10-false
2
[public PersonOverride(), public PersonOverride(java.lang.String,int,boolean)]
import java.util.Arrays;
import java.util.Scanner;

class PersonOverride{
    private String name ;
    private int age ;
    private boolean gender ;
    public PersonOverride(){
        this("default",1,true);
    }
    public PersonOverride(String name,int age,boolean gender){
        this.name =name;
        this.age=age;
        this.gender=gender;
    }
   
    public String toString(){
        return name+"-"+age+"-"+gender;
    }
    //难点哦;
    public boolean equals(PersonOverride x){
        if(this.name.equals(x.name)&&this.age==x.age&&this.gender==x.gender){
            return true;
        }else return false;
    }
}
public class Main {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner cin=new Scanner( System.in );
        int n1=cin.nextInt();
        PersonOverride persons1[]=new PersonOverride[n1];
        for(int i=0;i<n1;i++){  
		persons1[i] = new PersonOverride();
        }
        int n2=cin.nextInt();
        PersonOverride temp[] = new PersonOverride[n2];
        PersonOverride presons2[] = new PersonOverride[n2];
        int k=0;
        for(int i=0;i<n2;i++){
            temp[i]=new PersonOverride(cin.next(),cin.nextInt(),cin.nextBoolean());
            boolean flag=true;
            for(int j=0;j<i;j++){
                if(temp[i].equals(temp[j])){
                    flag=false;
                    break;
                }
            }
            if(flag==true){
                presons2[k]=temp[i];
                k++;
        }
	}
        
		for(int i=0;i<persons1.length;i++){ 
			System.out.println(persons1[i].toString());
        }
        for(int i=0;i<k;i++){
            System.out.println(presons2[i]);
        }        
        System.out.println(k);
        System.out.println(Arrays.toString(PersonOverride.class.getConstructors()));
	}

}


7-2 图形继承(分数 10)

作者 段喜龙                                                                                           单位 南昌航空大学

编写程序,实现图形类的继承,并定义相应类对象并进行测试。

  1. 类Shape,无属性,有一个返回0.0的求图形面积的公有方法

    public double getArea();//求图形面积
  2. 类Circle,继承自Shape,有一个私有实型的属性radius(半径),重写父类继承来的求面积方法,求圆的面积
  3. 类Rectangle,继承自Shape,有两个私有实型属性width和length,重写父类继承来的求面积方法,求矩形的面积
  4. 类Ball,继承自Circle,其属性从父类继承,重写父类求面积方法,求球表面积,此外,定义一求球体积的方法

    public double getVolume();//求球体积
  5. 类Box,继承自Rectangle,除从父类继承的属性外,再定义一个属性height,重写父类继承来的求面积方法,求立方体表面积,此外,定义一求立方体体积的方法

    public double getVolume();//求立方体体积
  6. 注意:
  • 每个类均有构造方法,且构造方法内必须输出如下内容:

    Constructing 类名
  • 每个类属性均为私有,且必须有getter和setter方法(可用Eclipse自动生成)
  • 输出的数值均保留两位小数

主方法内,主要实现四个功能(1-4):

从键盘输入1,则定义圆类,从键盘输入圆的半径后,主要输出圆的面积;

从键盘输入2,则定义矩形类,从键盘输入矩形的宽和长后,主要输出矩形的面积;

从键盘输入3,则定义球类,从键盘输入球的半径后,主要输出球的表面积和体积;

从键盘输入4,则定义立方体类,从键盘输入立方体的宽、长和高度后,主要输出立方体的表面积和体积;

假如数据输入非法(包括圆、矩形、球及立方体对象的属性不大于0和输入选择值非1-4),系统输出

Wrong Format

输入格式:

共四种合法输入

  • 1 圆半径
  • 2 矩形宽、长
  • 3 球半径
  • 4 立方体宽、长、高

输出格式:

按照以上需求提示依次输出

输入样例1:

在这里给出一组输入。例如:

1 1.0

输出样例1:

在这里给出相应的输出。例如:

Constructing Shape
Constructing Circle
Circle's area:3.14

输入样例2:

在这里给出一组输入。例如:

4 3.6 2.1 0.01211

输出样例2:

在这里给出相应的输出。例如:

Constructing Shape
Constructing Rectangle
Constructing Box
Box's surface area:15.26
Box's volume:0.09

输入样例3:

在这里给出一组输入。例如:

2 -2.3 5.110

输出样例2:

在这里给出相应的输出。例如:

Wrong Format

import java.util.*;

class Shape{
	public Shape() {
		System.out.println("Constructing Shape");
	}
	public double getArea() {
		return 0.0;
	}
}

class Circle extends Shape{
	private double  radius;
	public Circle() {
		System.out.println("Constructing Circle");
	}
	public double getArea() {
		return  Math.PI*radius*radius;
   }
	//就是简单获取到Shape里面的radius,因为题目要求是private类型,
	//我看他给出的意见是protect ,原来写的,不过问题不大
	//void setRadius 要传参,别忘了 
	public double getRadius() {
       return radius;
   }
	public void setRadius(double radius) {
	    this.radius = radius;
	}
}
class Rectangle extends Shape{
	private double  width;
	private double length;
	public Rectangle() {
		System.out.println("Constructing Rectangle");
	}
	public double getArea() {
		return width*length;
	}
	public double getWidth() {
		return width;
	}
	public void setWidth(double width) {
		this.width=width;
	}
	public double getLength() {
		return length;
	}
	public void setLength(double length) {
		this.length=length;
	}
}

class Ball extends Circle{
	public Ball() {
		System.out.println("Constructing Ball");
	}
	
	public double getArea() {
		return 4.0*super.getArea();
	}
	//在子类Ball中,我们重写了父类(circle)的getArea方法,
	//如果在重写的getArea方法中我们去调用了父类(circle)的相同方法,
	//必须要通过super关键字显示的指明出来。
	//如果不指出super的话,出来的结果就是circle里面的getArea里面的结果
	//看懂,掌声
	public double getVolume() {
		double l=getRadius();
		//因为父类(circle)里面有,不需要重新定义,我们直接拿下好吧
		return Math.PI*l*l*l*4/3.0;
	}
	
}
class Box extends Rectangle{
	private double height;
	public Box() {
		System.out.println("Constructing Box");
	}
	public double getArea(){
		
		double length=getLength();
		
		double width=getWidth();
		return 2*(width*length+length*height+height*width);
	}
	public double getVolume() {
		return super.getArea()*height;
	}
	public double getHeight() {
		return height;
	}
	public void setHeight(double height) {
		this.height=height;
	}
}


public class Main {
	public static void main(String[] args) {
	
		Scanner cin=new Scanner(System.in);
		int k=cin.nextInt();
		switch(k) {
		case 1:
			//创建一个圆的对象
			double r0= cin.nextDouble();
           // double r;
           // r=cin.nextDouble();
			
			if(r0<0) {
				System.out.println("Wrong Format");
			}
			else {
			Circle c1= new Circle();
			c1.setRadius(r0);
			System.out.printf("Circle's area:%.2f\n",c1.getArea());
			}
			break;
		case 2:
			//创建一个矩形对象
			double w1= cin.nextDouble();
			double l1= cin.nextDouble();
			if(w1<=0||l1<=0) {
				System.out.println("Wrong Format");
			}
			else {
			Rectangle R1= new Rectangle();
			R1.setWidth(w1);
			R1.setLength(l1);
			System.out.printf("Rectangle's area:%.2f\n",R1.getArea());
			}
			break;
		case 3:
			double r=cin.nextDouble();
			if(r<=0) {
				System.out.println("Wrong Format");
			}
			else {
				Ball B1=new Ball();
				B1.setRadius(r);
				System.out.printf("Ball's surface area:%.2f\n",B1.getArea());
	            System.out.printf("Ball's volume:%.2f\n",B1.getVolume());
			}
			break;
		case 4:
			
			double w2= cin.nextDouble();
			double l2= cin.nextDouble();
			double h2= cin.nextDouble();
			if(w2<=0||l2<=0||h2<=0) {
				System.out.println("Wrong Format");
			}
			else {
				Box BX1=new Box();
				BX1.setHeight(h2);
				BX1.setLength(l2);
				BX1.setWidth(w2);
				System.out.printf("Box's surface area:%.2f\n",BX1.getArea());
	            System.out.printf("Box's volume:%.2f\n",BX1.getVolume());
			}
			break;
		default :
	            System.out.println("Wrong Format");

		cin.close();//记得关,好习惯
	}
	}
}


7-3 Shape类-2

分数 10

定义一个形状类Shape,提供计算周长getPerimeter()和面积getArea()的函数

定义一个子类正方形类Square继承自Shape类,拥有边长属性,提供构造函数,能够计算周长getPerimeter()和面积getArea()

定义一个子类长方形类Rectangle继承自Square类,拥有长、宽属性,提供构造函数,能够计算周长getPerimeter()和面积getArea()

定义一个子类圆形类Circle继承自Shape,拥有半径属性,提供构造函数,能够计算周长getPerimeter()和面积getArea()

在main函数中,分别构造三个Shape类的变量,分别指向一个Square、Rectangle、Circle对象,并输出他们的周长、面积.

输入格式:

正方形类的边长

长方形类的长宽

圆类的半径

输出格式:

正方形的周长、面积

长方形的周长、面积

圆形的周长、面积

输入样例:

在这里给出一组输入。例如:

1
1 2
2

输出样例:

在这里给出相应的输出。例如:

4.00 1.00
6.00 2.00
12.57 12.57
import java.util.*;

abstract class Shape {
	public abstract double getPerimeter();
	public abstract double getArea();
}
//这一步可能编译器会报错说你的class不能继承抽象类
//但是没关系,加一个重写的标志就可以了, @Override
//代码可以抄,但是一定要自己手打一遍
class Square  extends Shape{
	double len;
	public Square() {
    }
	public Square(double len) {
		this.len= len;
	}
	 public double getPerimeter() {
	        return 4*this.len;
	    }
	    public double getArea() {
	        return this.len*this.len;
	    }
}
class Rectangle extends Square{
    double broad;
    public Rectangle(double len,double broad) {
        super(len);
        this.broad=broad;
    }
 
    public double getPerimeter() {
        return 2*this.len+2*this.broad;
    }
 
    public double getArea() {
        return this.len*this.broad;
    } 
}
class Circle extends Shape{
    double r;
    
    public Circle(double r) {
        this.r=r;
    }
    public double getPerimeter() {
        return 2*Math.PI*r;
    }
    public double getArea() {
        return Math.PI*this.r*this.r;
    } 
}
public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner cin=new Scanner(System.in);
		double l1=cin.nextDouble();
		double l2=cin.nextDouble();
		double w2=cin.nextDouble();
		double r3=cin.nextDouble();
		//输出正方形的数据
		Square s1=new Square(l1);
		System.out.printf("%.2f ",s1.getPerimeter());
		System.out.printf("%.2f\n",s1.getArea());
		//输出长方形的数据;
		Rectangle R1=new Rectangle(l2,w2);
		System.out.printf("%.2f ",R1.getPerimeter());
		System.out.printf("%.2f\n",R1.getArea());
		//输出圆形的数据
		Circle c1=new Circle(r3);
		System.out.printf("%.2f ",c1.getPerimeter());
		System.out.printf("%.2f\n",c1.getArea());
		
		cin.close();
	}

}


7-4 jmu-Java-03面向对象基础-04-形状-继承

前言

前面题目

形状

中我们看到,为了输出所有形状的周长与面积,需要建立多个数组进行多次循环。这次试验使用继承与多态来改进我们的设计。

本题描述

1.定义抽象类

Shape



属性:

不可变静态常量

double PI

,值为

3.14




抽象方法:


public double getPerimeter()

,

public double getArea()

2.

Rectangle



Circle

类均继承自Shape类。

Rectangle类(

属性:

int width,length)、Circle类(

属性:

int radius)。

带参构造方法为

Rectangle(int width,int length)

,

Circle(int radius)




toString

方法(Eclipse自动生成)

3.编写

double sumAllArea

方法计算并返回

传入的形状数组中所有对象的面积和




double sumAllPerimeter

方法计算并返回

传入的形状数组中所有对象的周长和

4.

main方法


4.1 输入整型值n,然后建立n个不同的形状。如果输入rect,则依次输入宽、长。如果输入cir,则输入半径。

4.2 然后输出所有的形状的周长之和,面积之和。并将所有的形状信息以样例的格式输出。

提示:

使用

Arrays.toString



4.3 最后输出每个形状的类型与父类型.使用类似

shape.getClass()

//获得类型,

shape.getClass().getSuperclass()

//获得父类型;


注意:

处理输入的时候使用混合使用

nextInt



nextLine

需注意行尾回车换行问题。

思考

  1. 你觉得sumAllArea和sumAllPerimeter方法放在哪个类中更合适?
  2. 是否应该声明为static?

输入样例:

4
rect
3 1
rect
1 5
cir
1
cir
2

输出样例:

38.84
23.700000000000003
[Rectangle [width=3, length=1], Rectangle [width=1, length=5], Circle [radius=1], Circle [radius=2]]
class Rectangle,class Shape
class Rectangle,class Shape
class Circle,class Shape
class Circle,class Shape

题解


import java.util.*;

abstract class Shape{
	final static double PI =3.14;
	public abstract  double sumAllPerimeter();
	public abstract  double sumAllArea();
}
class Rectangle extends Shape{
	int width;
	int length;
	public Rectangle() {
		
	}
	public Rectangle(int width,int length) {
		this.width=width;
		this.length=length;
	}
	
	 public double sumAllArea() { 
		 return  width*length;
	 }
	 
	 public double sumAllPerimeter() {
		 return 2*(width+length);
	 }
	 public String toString() {
	        return "Rectangle [" + "width=" + width + ", length=" + length + ']';
	    }

}
class Circle extends Shape{
	int radius;
	public Circle() {
		
	}
	public Circle(int radius) {
		this.radius=radius;
	}
	public double sumAllArea(){
		return PI*radius*radius;
	}
	public double sumAllPerimeter() {
		return 2*PI*radius;
	}
	@Override
	public String toString() {
		return "Circle [radius=" + radius + "]";
	}
}

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner cin=new Scanner(System.in);
		int n=cin.nextInt();
		Shape[] shape=new Shape[n];
		for(int i=0;i<n;i++) {
			String a=cin.next();
			if(a.equals("rect")) {
				int w=cin.nextInt();
				int l=cin.nextInt();
				shape[i]=new Rectangle(w,l);
			}else if(a.equals("cir")) {
				int r= cin.nextInt();
				shape[i]=new Circle(r);
			}
		}
		System.out.println(sumAllPerimeter(shape));
        System.out.println(sumAllArea(shape));
        
        
        String temp = "[";
        for (int i = 0; i < n; i++) {
            temp += shape[i];
            temp += (i < n-1) ? ", " : "]";
        }
        System.out.println(temp);
        
        for (Shape i : shape) {
            System.out.println(i.getClass()+","+i.getClass().getSuperclass());
        }
    }
    
    static double sumAllPerimeter(Shape[] shape) {
        double sum = 0.0;
        for (Shape i : shape) {
            sum += i.sumAllPerimeter();
        }
        return sum;
    }
    
    static double sumAllArea(Shape[] shape) {
        double sum = 0.0;
        for (Shape i : shape) {
            sum += i.sumAllArea();
        }
        return sum;
    }

	

}

另一种写法

import java.util.*;

abstract class Shape{
    final static double PI=3.14;
    public abstract double getPerimeter();
    public abstract double getArea();
}

class Rectangle extends Shape {
    int width,length;
    public Rectangle(int  width ,int  length) {
        this.width = width;
        this.length = length;
    }
    public double getArea() { 
        return width*length;
    }
    public double getPerimeter() {
        return 2*(width+length);
    }
    public String toString() {
        return "Rectangle [" + "width=" + width + ", length=" + length + ']';
    }
}

class Circle extends Shape{
    int  radius;
    public Circle(){
    }
    public Circle(int  r) {
        this.radius = r;
    }
    public double getArea() { 
        return PI*this.radius*this.radius;
    }
    public double getPerimeter() {
        return 2*PI*this.radius;
    }
    @Override
    public String toString() {
        return "Circle [radius=" + radius + "]";
    }
}

public class Main {

    public static void main(String[] args) {
        Scanner cin=new Scanner(System.in);
        int n=cin.nextInt();
        Shape[] a=new Shape[n];
        for(int i=0;i<n;i++) {
            String y=cin.next();
            if(y.equals("rect")) {  
            	int  w=cin.nextInt();
                int  l=cin.nextInt();
              
                a[i]=new Rectangle(w,l);
            } else if(y.equals("cir")) {
                int  r = cin.nextInt();
                a[i] = new Circle(r);
            }
        }
        
        System.out.println(sumAllPerimeter(a));
        System.out.println(sumAllArea(a));
        System.out.println(Arrays.toString(a));
        for(int i=0;i<a.length;i++) {
			System.out.println(a[i].getClass()+","+a[i].getClass().getSuperclass());
		}
        cin.close();
    }

    private static double sumAllPerimeter(Shape a[]) {
        double t=0;
        for(int i=0;i<a.length;i++) {
            if(a[i] instanceof Rectangle) {
                t=t+((Rectangle)a[i]).getPerimeter();
            } else if(a[i] instanceof Circle) {
                t=t+((Circle)a[i]).getPerimeter();
                
            }
        }
        return t;
    }

    private static double sumAllArea(Shape a[]) {
        double t=0;
        for(int i=0;i<a.length;i++) {
            if(a[i] instanceof Rectangle) {
                t=t+((Rectangle)a[i]).getArea();
            } else if(a[i] instanceof Circle) {
                t=t+((Circle)a[i]).getArea();
            }
        }
        return t;
    }
}


7-5 设计一个Shape及其子类Ova

编写一个完整的Java Application 程序。包含类Shape、类Oval、类ShapeTest,具体要求如下:

(1)编写一个抽象类Shape表示形状对象,包含以下成员

①属性:

PI:double型常数,值为3.1415926;

②方法:

  1. double area(), 抽象方法;
  2. double perimeter(),抽象方法;

    (2)编写一个Shape类的子类Oval,表示椭圆对象,包含以下成员

    ①属性:
  3. a:私有,double型,长轴半径;
  4. b:私有,double型,短轴半径;

    ②方法:
  5. Oval(double a,double b), 构造方法,用参数设置椭圆的长轴半径和短轴半径
  6. Oval(),构造方法,将椭圆的长轴半径和短轴半径都初始化为0。
  7. double area(),重写Shape类中的area方法,返回椭圆的面积( )
  8. double perimeter(),重写Shape类中的perimeter方法,返回椭圆的周长( )
  9. public String toString( ),将把当前椭圆对象的转换成字符串形式,例如长轴半径为10.0,短轴半径为5,返回字符串”Oval(a:10.0,b:5.0)”。

    (3)编写公共类Main,实现如下功能
  10. 输入长轴半径和短轴半径,并创建一个椭圆对象;
  11. 分别用area和perimeter方法,求出以上椭圆的面积和宽度并输出,输出过程中要求使用到toString方法,输出格式如下:

输入格式:

输入长轴半径和短轴半径

输出格式:

输出椭圆的面积和周长。

输入样例:

8 6

输出样例:

在这里给出相应的输出。例如:

The area of Oval(a:8.0,b:6.0) is 150.79644480000002
The perimeterof Oval(a:8.0,b:6.0) is 44.42882862370954

import java.util.*;
abstract class Shape{
	double PI =3.1415926;
	abstract double area();
	abstract double perimeter();
}
class Oval extends Shape{
	private double a,b;
	Oval(double a,double b){
		this.a=a;
		this.b=b;
	}
	Oval(){
		a=b=0;
	}
	double area() {
		return PI*a*b;
	}
	double perimeter() {
		return 2*PI*Math.sqrt( ( a * a + b * b ) / 2 );
	}
	@Override
	public String toString() {
		return "Oval(a:" + a + ",b:" + b + ")";
	}
	
}
public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner cin=new Scanner(System.in);
		double lr=cin.nextDouble();
		double dr=cin.nextDouble();
		Oval O1= new Oval(lr,dr);
		System.out.println("The area of "+O1.toString()+" is "+O1.area());
	    System.out.println("The perimeterof "+O1.toString()+" is "+O1.perimeter());
	cin.close();
	}

}



7-6 接口–四则计算器

  • 利用接口做参数,写个计算器,能完成加减乘除运算。
  1. 定义一个接口ICompute含有一个方法int computer(int n, int m)。
  2. 定义Add类实现接口ICompute,实现computer方法,求m,n之和
  3. 定义Sub类实现接口ICompute,实现computer方法,求n-m之差
  4. 定义Main类,在里面输入两个整数a, b,利用Add类和Sub类的computer方法,求第一个数a和第二个数b之和,输出和,第一个数a和第二个数b之差,输出差。

输入格式:

输入在一行中给出2个整数

输出格式:

输出两个数的和、差

输入样例:

在这里给出一组输入。例如:

6 7

输出样例:

在这里给出相应的输出。例如:

13
-1
import java.util.*;

interface Computer{ 
	int computer(int n,int m);
}
//接口的意思,差不多类似于一个公用的方法,这个方法呢就是
//这个题里面Add和Sub都用到的Computer这个接口
//就避免了重复书写这个构造的方法。当然也可以多个接口合并并一个
//例如现在又一个ABCD接口,把它接到一个总的接口E,
//其他的就implents E就可以了
class Add implements Computer{
	public int computer(int n,int m) {
		return n+m;
	}
}
class Sub implements Computer{
	public int computer(int n,int m) {
		return n-m;
	}
}

public class Main{

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner cin=new Scanner (System.in);
		int a =cin.nextInt();
		int b =cin.nextInt();
		Add A=new Add();
		Sub S=new Sub();
		int c=A.computer(a,b);
		int d=S.computer(a,b);
		System.out.println(c);
        System.out.println(d);
        cin.close();
	}

}


7-7 USB接口的定义

定义一个USB接口,并通过Mouse和U盘类实现它,具体要求是:

1.接口名字为USB,里面包括两个抽象方法:

void work();描述可以工作

void stop(); 描述停止工作

2.完成类Mouse,实现接口USB,实现两个方法:

work方法输出“我点点点”;

stop方法输出 “我不能点了”;

3.完成类UPan,实现接口USB,实现两个方法:

work方法输出“我存存存”;

stop方法输出 “我走了”;

4测试类Main中,main方法中

定义接口变量usb1 ,存放鼠标对象,然后调用work和stop方法

定义接口数组usbs,包含两个元素,第0个元素存放一个Upan对象,第1个元素存放Mouse对象,循环数组,对每一个元素都调用work和stop方法。

输入格式:

输出格式:

输出方法调用的结果

输入样例:

在这里给出一组输入。例如:


输出样例:

在这里给出相应的输出。例如:

我点点点
我不能点了
我存存存
我走了
我点点点
我不能点了
import java.util.*;
interface USB{
    void work();
    void stop();
}
class Mouse implements USB{
    public void work(){//要写public
        System.out.println("我点点点");
    }
    public void stop(){
        System.out.println("我不能点了");
    }
}
class UPan implements USB{
    public void work(){
        System.out.println("我存存存");
    }
    public void stop(){
        System.out.println("我走了");
    }
}
public class Main {
    public static void main(String[] args) {
        Mouse usb1=new Mouse();
        usb1.work();
        usb1.stop();
        USB usbs[]=new USB[2];
        usbs[0]=new UPan();
        usbs[0].work();
        usbs[0].stop();
        usbs[1]=new Mouse();
        usbs[1].work();
        usbs[1].stop();
    }
 
}



版权声明:本文为LuciaX_原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。