public interface Flyer {
public static final int num =
10;
public void takeOff();
public abstract void fly();
public void land();
}
class Plane implements Flyer {
@Override
public void takeOff() {
System.out.println(
"划行2小时");
}
@Override
public void fly() {
System.out.println(
"飞机飞行中...");
}
@Override
public void land() {
System.out.println(
"飞机着陆, 耳朵不舒服");
}
}
abstract class Pet2 {
private String name;
private int age;
private double weight;
public Pet2() {}
public Pet2(String name,
int age,
double weight) {
this.name = name;
this.age = age;
this.weight = weight;
}
public void setName(String name) {
this.name = name;
}
public String
getName() {
return name;
}
public void setAge(
int age) {
this.age = age;
}
public int getAge() {
return age;
}
public void setWeight(
double weight) {
this.weight = weight;
}
public double getWeight() {
return weight;
}
@Override
public String
toString() {
return "名字:" + name +
",年龄:" + age +
",体重:" + weight;
}
public abstract void speak();
public abstract void eat();
}
class Bird extends Pet2 implements Flyer {
private int flySpeed;
public Bird() {}
public Bird(String name,
int age,
double weight,
int flySpeed) {
super(name, age, weight);
this.flySpeed = flySpeed;
}
public void setFlySpeed(
int flySpeed) {
this.flySpeed = flySpeed;
}
public int getFlySpeed() {
return flySpeed;
}
@Override
public String
toString() {
return super.toString() +
",飞行速度:" + flySpeed;
}
@Override
public void speak() {
System.out.println(
"吱吱吱..");
}
@Override
public void eat() {
System.out.println(
"小鸟吃大虫");
}
@Override
public void takeOff() {
System.out.println(
"直接就飞,真痛快");
}
@Override
public void fly() {
System.out.println(
"想往哪儿飞");
}
@Override
public void land() {
System.out.println(
"电线杆就行");
}
}
class FlyerTest3 {
public static void main(String[] args) {
Pet2 pet =
new Bird(
"小飞",
2,
0.5,
30);
pet.eat();
Flyer flyer = (Flyer)pet;
flyer.fly();
}
}
class FlyerTest2 {
public static void main(String[] args) {
Pet2 pet =
new Bird(
"小飞",
2,
0.5,
30);
}
}
class FlyerTest {
public static void main(String[] args) {
Flyer f =
new Plane();
System.out.println(f.toString());
f.takeOff();
f.fly();
f.land();
}
}
interface CompareObject{
public int compareTo(Object o);
}
class Circle {
private double radius;
public Circle() {}
public Circle(
double radius) {
this.radius = radius;
}
public void setRadius(
double radius) {
this.radius = radius;
}
public double getRadius() {
return radius;
}
@Override
public String
toString() {
return "半径:" + radius;
}
}
class ComparableCircle extends Circle implements CompareObject {
public ComparableCircle() {}
public ComparableCircle(
double radius) {
super(radius);
}
@Override
public String
toString() {
return super.toString();
}
@Override
public int compareTo(Object o) {
return (
int)(((Circle)o).getRadius() - getRadius());
}
}
class Rectangle {
private double length;
private double width;
public Rectangle() {}
public Rectangle(
double length,
double width) {
this.length = length;
this.width = width;
}
public void setLength(
double length) {
this.length = length;
}
public double getLength() {
return length;
}
public void setWidth(
double width) {
this.width = width;
}
public double getWidth() {
return width;
}
@Override
public String
toString() {
return "矩形长:" + length +
",宽:" + width;
}
}
class ComparableRectangle extends Rectangle implements CompareObject {
public ComparableRectangle() {}
public ComparableRectangle(
double length,
double width) {
super(length, width);
}
@Override
public String
toString() {
return super.toString() +
",的矩形的面积";
}
@Override
public int compareTo(Object o) {
return (
int)(((Rectangle)o).getLength() * ((Rectangle)o).getWidth() - getLength() * getWidth());
}
}
public class TestInterface {
public static void main(String[] args) {
CompareObject c1 =
new ComparableCircle(
5.0);
CompareObject c2 =
new ComparableCircle(
6.5);
int i = c1.compareTo(c2);
if (i >
0) {
System.out.println(c2 +
" 大于 " + c1);
}
else if (i <
0){
System.out.println(c2 +
" 小于 " + c1);
}
else {
System.out.println(c2 +
" 等于 " + c1);
}
CompareObject c3 =
new ComparableRectangle(
5.0,
8.0);
CompareObject c4 =
new ComparableRectangle(
5.5,
4.0);
int j = c3.compareTo(c4);
if (j >
0) {
System.out.println(c4 +
" 大于 " + c3);
}
else if (j <
0){
System.out.println(c4 +
" 小于 " + c3);
}
else {
System.out.println(c4 +
" 等于 " + c3);
}
}
}
public interface USB {
public void connect();
public void work();
public void disconnect();
}
abstract class Device {
private static int currentID =
1;
private final int ID;
private String name;
{
ID = currentID++;
}
public Device() {
}
public Device(String name) {
this.name = name;
}
public int getID() {
return ID;
}
public void setName(String name) {
this.name = name;
}
public String
getName() {
return name;
}
@Override
public String
toString() {
return "ID:" + ID +
",设备名称:" + name;
}
public abstract void startup();
public abstract void shutdown();
}
class Udisk extends Device implements USB {
public Udisk() {}
public Udisk(String name) {
super(name);
}
@Override
public void startup() {
System.out.println(
"U盘加电启动");
}
@Override
public void shutdown() {
System.out.println(
"U盘已经关闭, 可以拔出");
}
@Override
public void connect() {
System.out.println(
"U盘插入, 容量识别..");
}
@Override
public void work() {
System.out.println(
"U盘数据复制中....");
}
@Override
public void disconnect() {
System.out.println(
"U盘拔出..");
}
}
class Camera implements USB {
@Override
public void connect() {
System.out.println(
"摄象头插入, 调焦中...");
}
@Override
public void work() {
System.out.println(
"开录, 请微笑");
}
@Override
public void disconnect() {
System.out.println(
"录完了, 请拔出");
}
}
class USBTest2 {
public static void main(String[] args) {
Device dev =
new Udisk(
"金士顿64G");
dev.startup();
dev.shutdown();
USB usb = (USB)dev;
usb.connect();
usb.work();
usb.disconnect();
System.out.println(usb);
}
}
class USBTest {
public static void main(String[] args) {
USB usb1 =
new Udisk();
usb1.connect();
usb1.work();
usb1.disconnect();
USB usb2 =
new Camera();
usb2.connect();
usb2.work();
usb2.disconnect();
}
}
转载请注明原文地址: https://ju.6miu.com/read-1297641.html