第12章 抽象

第12章 抽象

抽象:抽象方法和抽象类。
抽象方法将所有具体的事务,抽取成为一些共同的方法。
抽象类是包含抽象的一种类。

本章重点:
1、抽象
2、抽象类的定义和使用
3、抽象和接口的区别

所谓抽象,就是一种建立编程思路的思想。

抽象就是将拥有共同方法和属性的对象提取出来,提取后,重新设计一个更加通用、更加大众化的类,这个类称为抽象类。
抽象就是提取所有对象的共性,即取出共性的过程。
例如一个汽车管理系统中,凡能够证明这是一辆车的特征,就属于抽象范围。
抽象类使用关键字“abstract”来修饰的类。
具有一个或多个抽象方法的类,本身就要被定义为抽象类。
所谓抽象方法就是带关键字“abstract”的方法。
一个类中只要有一个抽象方法,那么这个类是就抽象类。
抽象类是可以继承的:
子类没有实现抽象类的全部抽象方法,那么子类也是抽象类。
子类实现抽象类的全部抽象方法,那么子类就不是抽象类。
含有抽象方法的类一定是抽象类,但抽象类不一定含有抽象方法。
抽象类不能被实例化,即不能使用关键字“new”来生成实例对象,但可以声明一个抽象类的变量指向具体子类的对象。

抽象与接口的区别:
1、都不能创建实例对象,因为它们都是抽象的。
2、虽然不能直接通过关键字“new”创建对象实例,但可声明变量,通过变量指向子类或实现类的对象,来创建对象实例。
不同点:
1、Java不支持多重继承,即一个子类只能有一个父类,但一个子类可以实现多个接口。
2、接口内不能有实例字段,只能有静态变量,抽象类可以拥有实例字段。
3、接口内方法自动设置为“public”的,抽象类中的方法必须手动声明访问控制符。

abstract class school{
  String sName;
  String cName;
  String location;
  public void setSName(String sName){
    this.sName = sName;
  }
  public void setCName(String cName){
    this.cName = cName;
  }

  abstract void setlocation(String location);
  abstract String getlocation();

  public String tostring(){
    String info = "学校名称:" + sName + " " + "班级名称:" + cName;
    return info;
  }
}

class stuA extends school{

  void setlocation(String location){
    this.location = location;
  }
  String getlocation(){
    return location;
  }
  public String tostring(){
    String info = super.tostring() + " " + "地区:" + location;
    return info;
  }
}

public class absTest{
  public static void main(String[] args){
    stuA s1 = new stuA();
    s1.setSName("Jamper");
    s1.setCName("Tianjin");
    s1.setlocation("China");
    System.out.println(s1.tostring());
  }
}

时间: 2024-10-11 13:13:11

第12章 抽象的相关文章

JS读书笔记:《JavaScript框架设计》——第12章 异步处理

一.何为异步   执行任务的过程可以被分为发起和执行两个部分. 同步执行模式:任务发起后必须等待直到任务执行完成并返回结果后,才会执行下一个任务. 异步执行模式:任务发起后不等待任务执行完成,而是马上执行下一个任务,当任务执行完成时则会收到通知. 面对IO操作频繁的场景,异步执行模式可在同等的硬件资源条件下提供更大的并发处理能力,也就是更大的吞吐量. 但由于异步执行模式打破人们固有的思维方式,并且任务的发起和任务的执行是分离的,从而提高编程的复杂度. 多线程.多进程均可实现异步模式. 二.从回调

<<Python基础教程>>学习笔记 | 第06章 | 抽象

第06章  抽象 ------ 懒惰即美德 假如要计算斐波那契数列(任何一个数是前两数之和的数字序列) >>> fibs=[0,1] >>> for i in range(8): fibs.append(fibs[-2]+fibs[-1]) #fibs[-2]+fibs[-1]后两位数,append往后添加 #运行后,包含10个斐波那契数列的10个数字是 >>> fibs [0, 1, 1, 2, 3, 5, 8, 13, 21, 34] 如果允许用户

设计模式之第12章-享元模式(Java实现)

设计模式之第12章-享元模式(Java实现) “怎么回事,竟然出现了OutOfMemory的错误.鱼哥,来帮我看看啊.”“有跟踪错误原因么?是内存泄露么?”“不是内存泄露啊,具体原因不知道啊.对了,有说新对象申请不到内存空间.”“这个原因么,我曾写过一篇博文:叫OutOfMemory简单分析.不过你的明显是因为代码问题,产生对象太多,导致内存被耗尽,正好一会有堂课,讲的正好能解决你的问题.”(嘿嘿,轮到我享元模式出场了~) 享元模式之自我介绍 我,享元模式乃是池技术中的重要实现方式,具体定义如下

读《构建之法》第11,12章有感

今天我读了<构建之法>的11,12章,其中第11章主要讲了软件的设计与实现的一些知识,告诉我们具体如何去开发一个软件.而第12章则为我们介绍了用户体验的相关知识,有些人认为用户界面的工作就是做一些优化,让界面更好看,而事实并不是这样,这一章就为我们做了详细的讲解. 我们写软件呢就是为了要解决用户的需求,而要解决用户的需求,就需要合适的方法:1.我们需要理解和抽象问题,将问题简化2.找到合适的模型3.最后按模型解决问题.而这其中分析和设计有许多方法:以文字为主的文档,如Word.PowerPoi

第3章 抽象工厂模式(Abstract Factory)

原文 第3章 抽象工厂模式(Abstract Factory) 场景我们的系统要同时支持两个数据库  SqlServer 跟Oracle数据库  并且不同的环境要进行随时切换. 看下面的代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54

敏捷软件开发:原则、模式与实践——第12章 ISP:接口隔离原则

第12章 ISP:接口隔离原则 不应该强迫客户程序依赖并未使用的方法. 这个原则用来处理“胖”接口所存在的缺点.如果类的接口不是内敛的,就表示该类具有“胖”接口.换句话说,类的“胖”接口可以分解成多组方法.每一组方法都服务于一组不同的客户程序.这样,一些客户程序可以使用一组成员函数,而其他客户程序可以使用其他组的成员函数. ISP承认一些对象确实需要非内敛的接口,但是ISP建议客户不应该看到它们作为单一的类存在.相反,客户程序看到的应该是多个具有内敛接口的抽象基类. 12.1 接口污染 如果子类

设计模式@第12章:组合模式

第12章:组合模式 一.看一个学校院系展示需求 编写程序展示一个学校院系结构:需求是这样,要在一个页面中展示出学校的院系组成,一个学校有多个学院, 一个学院有多个系.如图: ----------清华大学-------------- ----------计算机学院------------ 计算机科学与技术 软件工程 网络工程 ---------信息工程学院----------- 通信工程 信息工程 二.传统方案解决学校院系展示(类图) 传统方案解决学校院系展示存在的问题分析 将学院看做是学校的子类

《Python学习手册 第五版》 -第12章 if测试和语法规则

本章节的内容,主要讲解if语句,if语句是三大复合语句之一(其他两个是while和for),能处理编程中大多数逻辑运算 本章的重点内容如下: 1.if语句的基本形式(多路分支) 2.布尔表达式 3.if三元表达式 以下是针对重点内容的详细说明 1.if语句的基本形式 if语句是根据测试结果,从一些备选的操作中做出选择的语句,也就是说要先计算测试结果,再选择做什么,基本形式如下: if test1: statements1 elif test2: statements2 else: stateme

公开课视频-《第11章 配置-Citrix-企业网盘-第12章 配置-UPM》

***************************************************************************************** <大企业云桌面部署实战>-培训班-即将开课,包学包会,欢迎咨询:3313395633(QQ) ***************************************************************************************** <大企业云桌面部署实战>-精讲课