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

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类的形式处理主函数与子类之间的关系。

  

时间: 2024-08-25 10:08:23

Java入门——面向对象基础(三)的相关文章

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

Java入门——面向对象基础(一) 本博客目的 练习题(重要) 面向对象的概念(了解) 面向对象的三大特性(重要) 2016-09-10——13:13:39 ll练习题 用方法调用的形式进行数组排序 1 package Sep10; 2 //调用方法完成两个整形数组的排序并打印 3 public class ArrayRefDemo03 { 4 5 /** 6 * @param args 7 */ 8 public static void main(String[] args) { 9 // T

Java入门——面向对象基础

Java入门——面向对象 public class和class声明类的区别: public class生命时:文件名必须与类名相同 class声明时,文件名和类名可以不一致 一个文件中可以有多个class定义的类,但是只能由一个public class定义的类 标识符编写的建议 不要使用过多符号,最好用字母开头 可以有大小写字母,下划线,数字,$ 不能以数字开头 数据类型分为“基本数据类型”.“引用数据类型” 基本 整数类型 byte short int long 浮点类型 float doub

《head first java》值得Java或面向对象基础的新手看。

看完这本书后本人收获良多. 内容对Java以及面向对象的入门者非常友好. 抽象的内容惯用图解的方法来剖析,通俗易懂 之前看C#入门经典的面向对象时,依然浓浓的一头雾水. (1)很不解为何实例化要写成A a  = new A(); 不解为何“A要重复写两次”: 不解为何“等号两边都有A,感觉它就像在说‘A=A’这样的废话一样”: (2)不知道什么是多态性,为什么是面向对象的特点,有什么好处等等. (3)不知道被抽象(abstract)修饰的类,修饰类到底是什么个东西. 后来明白了,抽象类就是不能被

Java面向对象基础三

1.函数的重载 2.构造函数的作用 (构造函数可以重载) 1.函数名必须和类名相同 2.没有返回值 3.使用 New 来调用构造函数 4.如果类中没有构造函数,编译器会自动帮忙加载一个参数为空.方法体为空的构造函数 5.如果类中已经存在构造函数,编译器就不会帮忙生成构造函数了.

JAVA入门之基础语言

在上一章文章中,读者已经了解了如何搭建Java 开发环境及Java 程序的开发过程.从本篇文章开始讲解Java 的基本语言.这些基本语言的语法和其他一些编程语言相比有些是类似的,但还有很多不同之处,读者最好花一定的时间来了解这些最基本的语法. 第一部分  基础语言要素 一个 Java 程序是由很多部分组成,其中任何一个单词都有它存在的意义.这些单词就是a构成一个Java 程序的基本语言要素.本节就来讲解这些基本语言要素,包括标识符.关键字.分隔符和注释等. 一.标识符 标识符是程序员为自己定义的

Java入门 - 语言基础 - 01.Java简介

原文地址:http://www.work100.net/training/java-intro.html 更多教程:光束云 - 免费课程 Java简介 序号 文内章节 视频 1 概述 2 主要特性 3 发展历史 4 开发工具 请参照如上章节导航进行阅读 1.概述 Java 是由 Sun Microsystems 公司于1995年5月推出的 Java 面向对象程序设计语言和 Java 平台的总称.由 James Gosling 和同事们共同研发,并在1995年正式推出. Java 分为三个体系:

Java入门 - 语言基础 - 03.基础语法

原文地址:http://www.work100.net/training/java-basic-syntax.html更多教程:光束云 - 免费课程 基础语法 序号 文内章节 视频 1 第一个Java程序 - 2 基本语法 - 3 Java标识符 - 4 Java修饰符 - 5 Java变量 - 6 Java数组 - 7 Java枚举 - 8 Java关键字 - 9 Java注释 - 10 Java空行 - 11 继承 - 12 接口 - 13 Java源程序与编译型运行区别 - 请参照如上章节

JAVA入门:http基础

绝大多数Web开发都是在此基础上的,Http是超文本传输协议.  是处于应用层的协议. Http是一个基于请求/响应模式的,无状态的协议. Http1.1中优化了TCP连接,在一次连接内可以处理多个请求. Http请求分为三部分: 1.请求行  2.消息报头    3.请求正文  由游览器想服务器发送 一.介绍: 请求行以一个方法符合开头,后面跟着请求URI和协议的的版本. Http请求的几种方法: Get   和 POST  还有Head Get:请求获取由Request——URI所标识的资源

C++进阶 面向对象基础(三)

类的的定义: 初始化一般建议使用构造函数初始化列表形式: Person(const string nm, const string addr):name(nm), address(addr){} this指针: 类中使用this指针,特别是有些情况不能省略,例如在子类的方法中调用父类的某个成员变量,得加上this,不然有些编译器不通过,又例如 class Per{ Per& getName(){ return *this; } Per& getAge(){ return *this; }