Java复习回顾---7月9日回顾练习
抽象类
Java允许在定义方法时不写方法体,不包含方法体的方法是抽象方法,含有抽象方法的类必须是抽象类,抽象方法和抽象类都用abstract来修饰,抽象类只能被继承,不能实例化 new 对象,抽象类的子类必须包含抽象类的所有抽象方法。
接口
1 package cn.ftf.practice01;
2
3 public class TestInterface {
4 public static void main(String[] args) {
5
6 System.out.println(Animal1.ANIMAL_BEHAVIOR);
7 Dog1 dog=new Dog1();
8 System.out.println(dog.ANIMAL_BEHAVIOR);
9 dog.breathe();
10 dog.eat();
11 }
12 }
13 interface Animal2 extends Animal1{ //接口也可以继承,可以继承多个接口,用”,“分隔开
14 void play();
15 }
16 interface Animal1{ //接口的定义方法,用interface关键字来声明
17 String ANIMAL_BEHAVIOR="动物的行为"; //常量默认修饰为Public static final
18 void breathe();
19 void eat();
20 void run();
21 }
22 class Dog1 implements Animal2,Animal1{ //实现接口的方法,用implement,类中必须包含接口中的所有方法,类可以实现多个接口,用”,“分隔开
23
24 @Override
25 public void breathe() {
26 // TODO Auto-generated method stub
27 System.out.println("breath");
28 }
29
30 @Override
31 public void eat() {
32 // TODO Auto-generated method stub
33 System.out.println("ear");
34 }
35
36 @Override
37 public void run() {
38 System.out.println("run");
39 }
40
41 @Override
42 public void play() {
43 // TODO Auto-generated method stub
44 System.out.println("play");
45
46 }
47
48 }
多态
1 package cn.ftf.practice01;
2 /**
3 * 多测试态
4 * @author 房廷飞
5 *
6 */
7 public class Em04 {
8 public static void main(String[] args) {
9 Animal4 dog4=new Dog4(); //实现多态,允许使用父类类型的变量来引用子类类型的对象
10 Animal4 cat4=new Cat4();
11 Cat4 cat5=(Cat4) cat4; //对对象进行类型转换,由父类型变为子类型,实现对子类特有类的调用
12 System.out.println(dog4 instanceof Dog4); //instanceof关键字判断一个对象是否是一个类或接口的实例或子类
13 System.out.println(cat5 instanceof Animal4);//语法格式:对象 instanceof 类或接口
14 animalShout(dog4);
15 animalShout(cat4);
16 cat4.shot();
17 cat5.sleep(); //不能使用父类变量调用子类中的特有方法;需要对对象进行来行转换
18 }
19 public static void animalShout(Animal4 an) {
20 an.shot();
21 }
22 }
23 interface Animal4{
24 void shot();
25 }
26 class Dog4 implements Animal4{
27
28 @Override
29 public void shot() {
30 // TODO Auto-generated method stub
31 System.out.println("狗叫汪汪汪");
32
33 }
34
35 }
36 class Cat4 implements Animal4{
37
38 @Override
39 public void shot() {
40 // TODO Auto-generated method stub
41 System.out.println("猫叫喵喵喵");
42
43 }
44 public void sleep() {
45 System.out.println("猫咪在睡觉!");
46 }
47
48 }
一个综合应用小程序---物流系统小程序
项目工程文件:
Transportation.java
1 package cn.ftf.SendTest;
2 /**
3 * 交通工具父类
4 * @author 房廷飞
5 *
6 */
7 public abstract class Transportation { //含有abstract(抽象方法)的类需要是abstract类
8 private String number;
9 private String admin;
10 private String model;
11 public String getNumber() {
12 return number;
13 }
14 public void setNumber(String number) {
15 this.number = number;
16 }
17 public String getAdmin() {
18 return admin;
19 }
20 public void setAdmin(String admin) {
21 this.admin = admin;
22 }
23 public String getModel() {
24 return model;
25 }
26 public void setModel(String model) {
27 this.model = model;
28 }
29 public Transportation(String number, String admin, String model) {
30 super();
31 this.number = number;
32 this.admin = admin;
33 this.model = model;
34 }
35 public abstract void transport();
36
37 }
Ztransportation.java
1 package cn.ftf.SendTest;
2 /**
3 * 运输车辆类
4 * @author 房廷飞
5 *
6 */
7 public class Ztransportation extends Transportation implements Careable{
8
9 public Ztransportation(String number, String admin, String model) {
10 super(number, admin, model); //调用父类的构造方法
11 // TODO Auto-generated constructor stub
12 }
13
14 @Override
15 public void care() {
16 // TODO Auto-generated method stub
17 System.out.println("车辆保养完毕!!!");
18 }
19
20 @Override
21 public void transport() {
22 // TODO Auto-generated method stub
23 System.out.println("运输中!!!");
24
25 }
26
27
28 }
Careable.java
1 package cn.ftf.SendTest;
2 /**
3 * 保养接口
4 * @author 房廷飞
5 *
6 */
7 public interface Careable {
8 public void care();
9
10 }
GPS.java
package cn.ftf.SendTest;
/**
* 定义GPS接口
* @author 房廷飞
*
*/
public interface GPS {
public String showCoordinate();
}
Phone.java
1 package cn.ftf.SendTest;
2 /**
3 * 手机类,继承GPS类实现定位功能
4 * @author 房廷飞
5 *
6 */
7 public class Phone implements GPS{
8
9 public String showCoordinate() {
10 // TODO Auto-generated method stub
11 return null;
12 }
13
14 }
SendTest.java
1 package cn.ftf.SendTest;
2 /**
3 * 快递任务类
4 * @author 房廷飞
5 *
6 */
7 public class SendTest {
8 private String number;
9 private double weight;
10 public String getNumber() {
11 return number;
12 }
13 public void setNumber(String number) {
14 this.number = number;
15 }
16 public double getWeight() {
17 return weight;
18 }
19 public void setWeight(double weight) {
20 this.weight = weight;
21 }
22 public SendTest(String number, double weight) {
23 super();
24 this.number = number;
25 this.weight = weight;
26 }
27 //送前准备
28 public void sendBefore() {
29 System.out.println("送前,重量和订单编号:"+this.number+this.weight);
30 }
31 //发送货物
32 public void send(Ztransportation zt,Phone p) {
33 System.out.println("发送货物中:"+zt.getAdmin()+zt.getModel()+zt.getNumber());
34 zt.transport();
35 System.out.println("定位功能:"+p.showCoordinate());
36 }
37 //送后操作
38 public void sendAfter(Ztransportation ztr) {
39 System.out.println("送后操作"+ztr.getAdmin()+ztr.getModel()+ztr.getNumber());
40 }
41
42 }
TaskTest.java
1 package cn.ftf.SendTest;
2 /**
3 * 测试项目类
4 * @author 房廷飞
5 *
6 */
7 public class TaskTest {
8 public static void main(String[] args) {
9 SendTest se=new SendTest("l1323244",23.345);
10 se.sendBefore();
11 Ztransportation zt=new Ztransportation("a123", "ftf", "baoma");
12 Phone p=new Phone();
13 se.send(zt, p);
14 se.sendAfter(zt);
15 zt.care();
16 }
17
18 }