16.为什么要用抽象类

  • 当我们把父类定义为抽象类,而把子类定义为抽象函数的话
  • 当我们无法写出通用函数的时候,避免失误出现
  1. abstract classPrinter{
  2. void open(){
  3. System.out.println("open");
  4. }
  5. void close(){
  6. System.out.println("close");
  7. }
  8. abstract void print();
  9. }
  1. //该打印机为喷墨打印机
  2. classHPPrinter extends Printer{
  3. void print(){
  4. System.out.println("使用喷墨打印机打印");
  5. }
  6. }
  1. //该打印机为针式打印机
  2. classCanonPrinter extends Printer{
  3. void print(){
  4. System.out.println("使用针式打印机");
  5. }
  6. }
  1. classTest{
  2. publicstaticvoid main(String args []){
  3. Printer p1 =newHPPrinter();
  4. p1.open();
  5. p1.print();
  6. p1.close();
  7. Printer p2 =newCanonPrinter();
  8. p2.open();
  9. p2.print();
  10. p2.close();
  11. }
  12. }

结果:

D:\work\src>javac *.java

D:\work\src>java Test

open

使用喷墨打印机打印

close

open

使用针式打印机

close

来自为知笔记(Wiz)

时间: 2024-07-30 10:00:07

16.为什么要用抽象类的相关文章

Java中抽象类的理解

---------------------------------------- 今天来给大家分享一下我对抽 象类及抽象方法的理解: ---------------------------------------- 抽象类: 不能使用new方法进行实 例化的类,即没有具体实 例对象的类,只可以通过 抽象类派生出新的子类, 再由其子类来创建对象: 抽象方法: 抽象方法就是以 abstract 修饰的方法,这种方法只 声明返回的数据类型,方 法名称和所需要的参数, 没有方法体,也就是说抽 象方法只需

c#中接口、抽象类、继承综合小练习

1 namespace Test 2 { 3 class Program 4 { 5 static void Main(string[] args) 6 { 7 //作业:橡皮rubber鸭子.木wood鸭子.真实的鸭子realduck. 8 //三个鸭子都会游泳,而橡皮鸭子和真实的鸭子都会叫, 9 //只是叫声不一样,橡皮鸭子"唧唧"叫,真实地鸭子"嘎嘎"叫,木鸭子不会叫. 10 11 Duck dk = new RealDuck(); 12 dk.Swim();

java学习笔记——韩顺平视频

第0讲:开山篇 1.  Java se J2se        桌面 Java ee J2ee        网络 Java me J2me        手机 2.  SQL server   Mysql   Oracle 3. 学习软件编程的注意事项 1.高效愉快学习 2.先建立一个整体框架然后细节 3.用什么再学习什么 4.先知道how,再知道why 5.软件编程是一门"做中学"学科,做了才会 6.适当囫囵吞枣 7.琢磨别人怎么做,不是我认为这么做 第1讲  内容介绍.项目演示.

【原】Java学习笔记019 - 面向对象

1 package cn.temptation; 2 3 public class Sample01 { 4 public static void main(String[] args) { 5 // 仔细想一想,Animal应该是一个抽象的概念,相对于Animal来说,狗才是具体的概念 6 // Animal的行为也应该算是一个抽象的行为 7 8 // Java中对于这些抽象的概念或是抽象的行为,提供了一个关键字 abstract 来进行修饰 9 10 // 关键字 abstract用在类上,

C#设计模式(15)——命令(Command Pattern)

一.前言 之前一直在忙于工作上的事情,关于设计模式系列一直没更新,最近项目中发现,对于设计模式的了解是必不可少的,当然对于设计模式的应用那更是重要,可以说是否懂得应用设计模式在项目中是衡量一个程序员的技术水平,因为对于一个功能的实现,高级工程师和初级工程师一样都会实现,但是区别在于它们实现功能的可扩展和可维护性,也就是代码的是否“优美”.可读.但是,要更好地应用,首先就必须了解各种设计模式和其应用场景,所以我还是希望继续完成设计模式这个系列,希望通过这种总结的方式来加深自己设计模式的理解. 二.

php-面向对象

1. 面向对象:一种计算机编程的架构.把每个独立的功能模块抽象成类,形成对象,由多个对象组成这个系统,这些对象之间都能够接收信息.处理数据和向其它对象发送信息等等相互作用 特点:重用性.灵活性.扩展性: 面向对象符合人类看待事物的一般规律,采用面向对象方法可以使系统各部分各司其职.各尽所能. 2.类:类是具有相同属性(特征)和相同方法(行为)的一组对象的集合. 3.对象:用来描述客观事物的一个实体,它是构成系统的基本单位. 对象是一个由属性和有权对这些属性进行操作的封装体. 4.类和对象的关系:

【设计模式】—— 桥接模式Bridge

前言:[模式总览]——————————by xingoo 模式意图 这个模式使用的并不多,但是思想确实很普遍.就是要分离抽象部分与实现部分. 实现弱关联,即在运行时才产生依赖关系. 降低代码之间的耦合. 模式结构 Abstraction 抽象部分的基类,定义抽象部分的基础内容. RefinedAbstraction 抽象部分的扩充,用于对基类的内容补充,添加特定场景的业务操作. Implementor 实现部分的基类,定义实现部分的基本内容. ConcreteImplementor 具体的实现类

大龄屌丝自学笔记--Java零基础到菜鸟--019

抽象类,接口,类.接口关系,抽象类与接口的区别 1.抽象类 抽象方法:只有方法体的方法,用于定义抽象的.非具体的功能,如 abstract void eat(); . 抽象类:abstract class,可以包含抽象方法的类(抽象类不一定包含抽象方法,包含抽象方法的类一定是抽象类),如:abstract class Animal{} . 抽象类的特点:抽象类既可以包含抽象方法,也可以包含非抽象方法. 抽象类有构造函数,但不能被实例化.构造函数用于子类访问父类数据的初始化. 抽象类的子类是抽象类

effective java

1.考虑用静态工厂方法代替构造函数 对于一个类,为了让客户获得他的一个实例,最通常的方法是提供一个共有的构造函数. 实际上还有另外一种技术,尽管较少为人所知,但也应该成为每个程序员的工具箱中的一 部分,类可以提供一个公有的  静态工厂方法 .所谓静态工厂方法,实际上只是一个简单 的静态方法,他返回的是类的一个实例. 类可以提供一些静态工厂方法,来代替构造函数,或者同时也提供好一些构造函数.用静态 工厂来代替公有的构造函数,既有好处,也有不足之处. 静态工厂方法的一个好处是,与构造函数不同,静态工