码迷,mamicode.com
首页 > 编程语言 > 详细

Java入门——面向对象基础(三)

时间:2016-09-17 00:11:38      阅读:232      评论:0      收藏:0      [点我收藏+]

标签:

Java入门——抽象类与接口的应用


本Blog内容

  1. 为抽象类与接口实例化
  2. 抽象类的实际应用——模板设计
  3. 接口的实际应用——制定标准
  4. 设计模式——工厂设计
  5. 设计模式——代理设计

为抽象类与接口实例化

  利用多态性

 1 package Sep16;
 2 
 3 public class AbstractCaseDemo1 {
 4 
 5     /**
 6      * @param args
 7      */
 8     public static void main(String[] args) {
 9         // TODO Auto-generated method stub
10         Abstract a=new BAbstract();
11         a.print();
12     }
13 
14 }
15 abstract class Abstract{
16     public abstract void print();
17 }
18 class BAbstract extends Abstract{
19     public void print(){
20         System.out.println("Hello Word!!!");
21     }
22 }

抽象类的实际应用——模板设计

  就是先用抽象类设计一张空白的模板,具体不同之处用子类实现。

 1 package Sep16;
 2 
 3 public class AbstractCaseDemo2 {
 4 
 5     /**
 6      * @param args
 7      */
 8     public static void main(String[] args) {
 9         // TODO Auto-generated method stub
10         Person student=new Students("Bob",21,89f);
11         Person worker=new Workers("搬砖哥",22,9999);
12         student.say();
13         worker.say();
14     }
15 
16 }
17 abstract class Person{
18     private String name;
19     private int age;
20     public Person(String name, int age) {
21         super();
22         this.name = name;
23         this.age = age;
24     }
25     public String getName() {
26         return name;
27     }
28     public int getAge() {
29         return age;
30     }
31     public void say(){
32         System.out.println(this.getContent());//说话的功能,Person类的方法
33         
34     }
35     public abstract String getContent();//说话的具体内容,根据不同的人,有不同的定义
36 }
37 class Students extends Person{
38     private float score;
39     public Students(String name, int age, float score) {
40         super(name, age);
41         this.score = score;
42     }
43     public String getContent(){
44         return "学生信息:姓名:"+super.getName()+";年龄:"+super.getAge()+",成绩:"+this.score;
45     }
46 }
47 class Workers extends Person{
48     private float salary;
49     public Workers(String name, int age, float salary) {
50         super(name, age);
51         this.salary = salary;
52     }
53     public String getContent(){
54         return "工人信息:姓名:"+super.getName()+";年龄:"+super.getAge()+",工资:"+this.salary;
55     }
56 }
学生信息:姓名:Bob;年龄:21,成绩:89.0
工人信息:姓名:搬砖哥;年龄:22,工资:9999.0

 


接口的实际应用——制定标准

package Sep16;

public class AbstractCsseDemo03 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Computer.plugin(new Flash());
		System.out.println("---------------------");
		Computer.plugin(new Print());
	}

}
interface USB{//定义USB标准
	public void start();
	public void stop();
}
//定义实现USB接口的U盘类
class Flash implements USB{
	public void start(){
		System.out.println("U盘开始工作!");
	}

	public void stop() {
		// TODO Auto-generated method stub
		System.out.println("U盘停止工作!");
	}
}
//定义实现USB接口的打印机类
class Print implements USB{
	public void start(){
		System.out.println("打印机开始工作!");
	}

	public void stop() {
		// TODO Auto-generated method stub
		System.out.println("打印机停止工作!");
	}
}
class Computer{
	public static void plugin(USB usb){//实现了USB接口的类都可以传递过来
		usb.start();
		System.out.println("======设备工作中=====");
		usb.stop();
	}
}

  

U盘开始工作!
======设备工作中=====
U盘停止工作!
---------------------
打印机开始工作!
======设备工作中=====
打印机停止工作!

设计模式——工厂设计

  类似于Java的JVM虚拟机,采用Factory类的形式处理主函数与子类之间的关系。

  

 

Java入门——面向对象基础(三)

标签:

原文地址:http://www.cnblogs.com/BoscoGuo/p/5877541.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!