`
incyanggan
  • 浏览: 34054 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

Java菜鸟学习笔记--面向对象篇(十四):继承与组合

阅读更多

组合是什么


1.继承和组合都是一种随思想渗透而下的编码方式,其根本目的都是为了复用类,减少重复代码


2.要实现一个类的复用,可以分为组合语法和继承语法


3.组合就是通过将一个对象置于一个新类中,将其作为新类的成员变量,组成 类的一部分。


4.继承和组合使用情况要随机应变


继承与组合区别


1.组合是在新类产生现有类的对象,组合出功能给更强的新类。


2.继承通过现有类的类型创建新类,并且功能在现有类的基础上进行功能上的扩展,实现更强的类。


3.继承一般在Is-A关系中(什么是什么..),组合在Has-A(什么有什么)关系。


继承语法


//1.用继承实现代码复用
package me.jicheng;

class Animal{
	
		//心脏跳动,仅供其他调用
		private void beat(){
			
				System.out.println("心脏跳动");
			}
		//呼吸
		public void breath(){
			
				beat();
				System.out.println("吸气呼气~~深呼吸~");
			}
	
	}
class Bird extends Animal{
	
		//多了一个奔跑
		public void fly(){
			
				System.out.println("在你的天上自由的飞翔~~");
			}
	}
	
class Wolf extends Animal{
	
		public void run(){
			
				System.out.println("12.88冲刺啊~");
			}
	
	}
public class Inherit{
	
		public static void main(String[] args){
			
				//Bird 对象
				Bird niao=new Bird();
				niao.fly();
				niao.breath();
				
				//Wolf狼
				Wolf lang=new Wolf();
				lang.run();
				lang.breath();
			
			}
	
	
	}


继承语法

1.Animal实例

//2.用组合实现代码复用
package me.zuhe;

class Animal{
	
	private void beat(){
		
			System.out.println("心脏跳动");
		}
	public  void breath(){
		
			beat();
			System.out.println("自由的呼吸");
		}
	
	}
class Wolf extends Animal{
	
	//把需要的类当作实例变量加入进来实现组合
	private Animal one;
	
	//构造器
	public Wolf(Animal one){
		
			this.one=one;
		}

	public void breath(){
		
			one.breath();
		}
		
	public void run(){
			System.out.println("runing...");
		}
	
	}
class Bird{
	
	private Animal one;
	
	public Bird(Animal one){
			this.one=one;
		}
	public void breath(){
			one.breath();
		}
	public void fly(){
			System.out.println("Fly...");
		}
	
	}

public class Composite{
	
	public static void main(String[] args){
		
			//创建Animal对象
			Animal my=new Animal();
			//创建Wolf对象并调用方法
			Wolf nima=new Wolf(my);
			nima.run();
			nima.breath();
			//创建Bird对象并调用方法
			Bird nimei=new Bird(my);
			nimei.fly();
			nimei.breath();
		}
	
	}


1.Car实例

//组合的方法组建汽车
package me.car;
//发动机
class Engine{
	
	public void start(){
		System.out.println("引擎启动");
	}
	//引擎加速
	public void rev(){
		
		System.out.println("引擎加速");	
	}
	public void stop(){
		System.out.println("引擎停止");	
	}
}

//车轮
class Wheel{
	
	//给轮胎打气
	public void inflate(){
		System.out.println("打气");
	}
}
//车窗
class Windows{
	
	public void rollup(){
		System.out.println("看车窗爬上来~");
	}
	public void rolldown(){
		System.out.println("开往城市边缘开~我把车窗偷偷摇下来~");
		
	}
}
//车门
class Door{
	//车门有车窗
	public Windows window=new Windows();
	
	public void open(){
		System.out.println("开车门");
	}
	public void close(){
		System.out.println("关车门");
	}
		
	
}
class Car{
	
	//一辆车有一个发动机,四个轮子,
	public Engine engine=new Engine();
	public Wheel [] wheel=new Wheel[4];

	public Door left=new Door();
	public Door rigth=new Door();
	
	public Car(){
		for(int i=0;i<4;i++) wheel[i]=new Wheel();
	}	

}
public class TestZuhe{
	
	public static void main(String[] args){
		
		Car myCar=new Car();
		myCar.engine.start();
		myCar.engine.rev();
		myCar.left.open();
		myCar.rigth.window.rolldown();
		
		
	}
	
}

运行结果

yg@Gander:~/Desktop/code$ java me.car.TestZuhe 
引擎启动
引擎加速
开车门
开往城市边缘开~我把车窗偷偷摇下来~




作者:YangGan
出处:http://blog.csdn.net/incyanggan
本文基于署名 2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名Yanggan(包含链接).

分享到:
评论

相关推荐

    Java基础知识笔记详细版-菜鸟翻阅必备

    ### Java基础知识笔记详细版-菜鸟翻阅必备 #### 一、Java概述 1. **Java语言发展史**: - Java由Sun Microsystems公司于1995年推出。 - 最初由James Gosling领导的设计团队开发,目标是用于家用电器的编程。 - ...

    javase全套学习笔记,从入门到进阶详细笔记

    本学习笔记旨在为初学者提供从入门到进阶的全面指导,覆盖了Java技术的基础和核心概念。 1. Java技术基础 - **编程语言**:编程语言是人与计算机交流的工具,Java作为高级语言,具有简洁、面向对象、可移植性好等...

    java笔记--从菜鸟到j2se j2ee高手之路

    接着,深入学习Java的面向对象特性,如封装、继承和多态。封装是将数据和操作数据的方法打包在一起,以保护数据的安全性。继承允许一个类(子类)继承另一个类(父类)的属性和方法,从而实现代码重用。多态则是指...

    JAVA基础教程(非常适合初学者)

    Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems(现为Oracle公司的一部分)于1995年发布。它的设计目标是简洁、通用,并且能够适应互联网环境。本教程非常适合初学者,旨在帮助你从零开始掌握Java编程...

    java学习路线1

    - 面向对象(封装、继承、多态) - 抽象类、接口 - 枚举 - 常用类 - String、日期时间 - 集合类 - 泛型 - 注解 - 异常处理 - 多线程 - IO流 - 反射 **学习建议**: - 持续学习,保持连贯性。 - 多敲代码,动手实践...

    java学习路线(鱼皮)

    在Java入门阶段,学习者需要掌握Java基础语法、数据类型、流程控制、数组、面向对象、方法重载、封装、继承、多态、抽象类、接口、枚举、常用类、String、日期时间、集合类、泛型、注解、异常处理、多线程、IO流、...

    Java python 个人学习笔记

    这份"Java Python 个人学习笔记"涵盖了这两种语言的基础知识、进阶技巧以及可能的结合应用。 Java是一种面向对象的、高性能的编程语言,由Sun Microsystems(现为Oracle公司)开发,其设计目标是“一次编写,到处...

    建议学习的.md

    - **Java基础**: Java是面向对象编程的典范,学习Java需要掌握面向对象编程的基本概念,如类、对象、继承、封装等。 - **前端技术**: HTML、CSS和JavaScript是前端开发的基础,可以通过在线资源如菜鸟教程或B站上的...

    狂神说java系列笔记(java基础+javaweb+ssm+微服务)全套

    3. **6、JavaSE:面向对象.pdf**:这是关于Java面向对象编程的章节,涵盖类、对象、继承、多态、封装等核心概念。 4. **18、前端:JavaScript、jQuery.pdf**:虽然主要讨论Java,但这个部分也涉及到了前端开发,...

    跃达创新java笔记

    2. **类与对象**:Java是一种面向对象的语言,理解类的定义、对象的创建与销毁、封装、继承、多态等概念至关重要。 3. **集合框架**:如ArrayList、LinkedList、HashSet、HashMap等,它们提供了存储和管理数据的...

    鱼皮 - Java 学习路线一条龙版本 V2.pdf

    在 Java 入门阶段,学习者需要掌握 Java 的基础语法,包括数据类型、流程控制、数组、面向对象、方法重载、封装、继承、多态、抽象类、接口、枚举、常用类、String、日期时间、集合类、泛型、注解、异常处理、多线程...

    2024最新版Java基础视频教程包括基础详解+笔记+源码+课后练习

    Java是一种广泛使用的面向对象编程语言,它因“一次编写,到处运行”的特性而闻名。Java语言的核心概念包括面向对象的设计、语法结构、运行环境以及标准类库。本教程旨在为初学者提供全面的Java基础知识,让学习者...

    Java复习笔记

    Java是一种广泛使用的面向对象的编程语言,以其跨平台和丰富的库而闻名。下面是对Java一些核心概念的详细解释,主要涵盖数组、常用类、流、线程和网络编程。 **数组**是Java中存储固定数量同类型元素的数据结构。一...

Global site tag (gtag.js) - Google Analytics