欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

第二章 面向对象的几个基本原则 博客分类: J2EEJava设计模式设计Java基础  

程序员文章站 2024-03-24 21:16:58
...

2.1 抽象类和接口

第二章	面向对象的几个基本原则
            
    
    博客分类: J2EEJava设计模式设计Java基础  
 抽象类是可以继承一个抽象类


第二章	面向对象的几个基本原则
            
    
    博客分类: J2EEJava设计模式设计Java基础  
 抽象类

public abstract class Animal {
	public abstract void sleeping();
	public abstract void run();
}

 

具体类:

 

public class Bird extends Animal {
	@Override
	public void run() {
		System.out.println("鸟用翅膀飞");
	}
	@Override
	public void sleeping() {
		System.out.println("鸟在树枝上睡觉");
	}
	public static void main(String[] args) {
		Animal bird = new Bird();
		bird.run();
		bird.sleeping();
	}
}

 

public class Dog extends Animal {
	@Override
	public void run() {
		System.out.println("狗用脚跑");
	}
	@Override
	public void sleeping() {
		System.out.println("狗白天睡觉");
	}
	public static void main(String[] args) {
		Animal dog = new Dog();
		dog.run();
		dog.sleeping();
	}
}

抽象类的总结
 

  • 抽象类应该拥有尽可能多的共同代码
  • 抽象类应该拥有尽可能少的数据

什么时候用抽象

  • 区分is-a(继承)和has-a
  • 永远不会出现将子类转换为另一个类的子类
  • 子类具有扩展超类得责任,而不是置换或注释超类的责任
  • 只有在分类学角度上有意义时才继承,而不是继承工具类

什么是接口

一个Java接口是一些方法特征的集合,只有方法的特征,没有方法的实现,因此这些方法在不同的地方被实现时代表不同的行为。Java接口不涉及对象,只描述共有特征的行为,且没有方法的实现。

为什么使用接口

  • 完成不同对象之间相互关系的体现,作为连接不同对象之间完成业务的纽带
  • 接口保证了可插入性,关联的插入性和调用的可插入性
  • 类型的转换

2.2 面向抽象

  • 问题描述:求不同柱体的体积
  • 不同柱体:圆柱体,矩形柱体,三角形柱体
  • 公式:底面积*高
  • 问题分析
    柱体
    圆柱体、矩形柱体、三角形柱体
  • 体积
    底面积
    圆、矩形、三角形

设计


第二章	面向对象的几个基本原则
            
    
    博客分类: J2EEJava设计模式设计Java基础  
 
2.3 开闭原则

  • 开闭原则:Open-Closed-Principle
    对扩展开放:轻松的加自己的扩展
    对修改关闭:加扩展不需要修改原来的代码结构
    在不被修改的前提下进行扩展
    易扩展、易维护
    要做到开闭原则就必须进行合理的抽象,将可变的需求尽量都关闭在抽象部分类里,将可扩展的部分放在子类中来体现

2.4 多用组合少用继承原则

  • 继承的缺点
    子类继承父类的方法在编译期间就被确定了,所以在运行期间无法改变从父类继承的方法行为
    子类与父类属于强耦合关系,一旦父类的方法改变,所有子类的方法都得改变
    白盒复用,因为子类对父类的所有方法是可见的
  • 组合复用的优点
    黑盒复用,当前对象只拥有委托对象实例,具体实现细节都在委托对象类中
    对象与所包含的对象属于弱耦合关系
    可以再运行期间动态指定所包含的对象

2.5 高内聚低耦合原则

  • 高内聚
    类中的方法都是一组相关的行为,是所有子类的共有行为
  • 低耦合
    不要让一个类包含太多对其他类的应用,避免修改其他对象时以影响到了太多的关联对象
  • 第二章	面向对象的几个基本原则
            
    
    博客分类: J2EEJava设计模式设计Java基础  
  • 大小: 57.2 KB
  • 第二章	面向对象的几个基本原则
            
    
    博客分类: J2EEJava设计模式设计Java基础  
  • 大小: 30.7 KB
  • 第二章	面向对象的几个基本原则
            
    
    博客分类: J2EEJava设计模式设计Java基础  
  • 大小: 51.3 KB