17_javase_抽象类和封装

Jack·Kwok      2022-04-21     608

关键词:

1. 抽象类

抽象类:不能用于描绘对象的类(不能用于实例化对象)的类,除了不能实例化对象之外,与普通类的功能相似,有成员变量、成员方法和构造方法等。

定义抽象类是用到了 abstract 关键字。

publicabstract class 抽象类类名


抽象类的特征:
1、抽象类不能被实例化。
2、抽象类不一定包含抽象方法,但抽象方法所属的类必定是抽象类。
3、抽象类中的抽象方法只负责声明,无方法体。
4、构造方法、类方法不能声明为抽象方法。
5、抽象类的子类必须给出抽象类的抽象方法的具体实现,除非这个子类也是抽象类。

2. 封装

在实际开发中,我们并不希望将某个类的字段直接暴露给其它类,任其访问和修改,因为这会让数据非常不安全。这个时候我们将类设计成封闭式的方式,称为封装。

public class Pig 
    //编号
    private Integer num;
    //名字
    private String name;
    //种类
    private String kind;

    public Integer getNum() 
        return num;
    

    public void setNum(Integer num) 
        this.num = num;
    

    public String getName() 
        return name;
    

    public void setName(String name) 
        this.name = name;
    

    public String getKind() 
        return kind;
    

    public void setKind(String kind) 
        this.kind = kind;
    


对于以上例子,我们称为封装。我们将字段用 private 关键字修饰,让类之外不可以访问,并提供特定的 getXXX 方法和 setXXX 方法给类之外获取和操作字段,以此隐藏该类内部设计的细节。

013_面向对象_抽象类和接口

1.抽象类(abstract)  (1)特点    ①方法只有声明没有实现时,该方法就是抽象方法,抽象方法必须定义到抽象类中,该类也必须被abstract修饰    ②抽象类不可以被实例化,因为调用抽象方法没有意义。    ③抽象... 查看详情

抽象类和接口类(代码片段)

 1#接口类也可以理解为抽象类用来建立一套规范接口是一种设计思想设计模式2#接口类默认多继承接口类中的所有方法,都必须不能实现--java3#抽象类不支持多继承,抽象类中可以实现一些方法鸭子模型--java4fromabcimportabstractme... 查看详情

21_javase_hashset类和hashmap类

1.简介在这一节,我将HashSet和HashMap放在一起讲解。因为实际上HashSet和HashMap的实现原理是相似的,HashSet底层是基于HashMap来实现的。2.HashSet首先来讲HashSet的特点:1、不能存储重复元素2、可以存储null值3、无序4、不是... 查看详情

java示例代码_我有一个抽象类和两个子类。如果不能实例化抽象类,如何处理它们

java示例代码_我有一个抽象类和两个子类。如果不能实例化抽象类,如何处理它们 查看详情

java类的类型修饰符包含了缺省、_________________及_________________三种,分别对应具体类、抽象类和最

缺省时为(friendly)抽象类(abstract)最终类(final)公共类(public)保护类(protect)参考技术Ajava类的类型修饰符包含了缺省(也就是包访问权限)、abstract及public三种,分别对应具体类、抽象类和最高访问权限类。 参考技术Bpu... 查看详情

javase知识-09(面向对象_多态&抽象类&接口)

多态的概述及其代码体现多态(polymorphic)概述事物存在的多种形态多态前提a:要有继承关系。b:要有方法重写。c:要有父类引用指向子类对象。classDemo1_Polymorphic{publicstaticvoidmain(String[]args){Catc=newCat();c.eat();Animala=newCat();//猫是一只动... 查看详情

抽象类,接口类,封装,多态(代码片段)

抽象类,接口类抽象类有固定的写法(制定规范),制定规范后,必须按照规范的方法来写后面的执行方法,否则程序就会报错代码:普通方法写两个支付的方法classAli:def__init__(self,money):self.money=moneydefpay(self):print(‘使用支付宝支付了%s元... 查看详情

18_javase_接口和枚举类

1.接口的定义接口:接口不是类,它是一个抽象类型,是抽象方法的集合,用interface声明。接口并不是类,但是有很多与类相同的特征。例如:一个接口中可以有若干个方法;接口文件保存在.java结尾的... 查看详情

044_面向对象_17_封装(代码片段)

一、封装的概念  制造厂家为了方便我们使用对象(电视、车辆),把复杂的内部细节全部封装起来。只给我们暴露简单的接口,比如:电源开关、比如:油门。具体怎么内部实现的,我们不需要操心。需要让用户知道的暴露出... 查看详情

19抽象类接口类封装.多态

主要内容:1. 抽象类(接口类):   制定一个规范 :fromabcimportABCMeta,abstractmethodclassPayment(metaclass=ABCMeta):@abstractmethoddefpay(self):passclassAlipay(Payment):def__init__(self,money):self.money=mo 查看详情

scala_类和对象(代码片段)

类是对象的抽象,而对象是类的具体实例。类是抽象的,不占用内存,而对象是具体的,占用存储空间。1importscala.beans.BeanProperty23classChecksumAccumulator(xc:Int,yc:Int)4//Scala的类定义可以有参数,称为类参数,如上面的xc,yc,类参数在... 查看详情

java基础04_面向对象

...护对象之间的关系3、面向对象的基本特性封装继承多态抽象4、类:面向对象的最小单元,基本单位(抽象)类和对象的关系:多个对象---抽象-->类--实例化-->多个对象类:一组相关的属性和行为的集合由成员变 查看详情

抽象和封装_java_oop

...:2011年08月20日10:06分 一、面向过程和面向对象二、抽象 只关注与系统相关的行为和特征三、封装 比如你不需要知道电视机是怎么播放画面的,只需要知道怎么用。 1、隐藏实现的细节 2、 查看详情

java_抽象类

A:抽象类的概述  抽象类就是看不懂B:抽象类特点:(没有具体的实现意义,不知道如何实现的方法就定义为抽象方法,如:动物吃,如何吃?)  a:抽象类和抽象方法必须用abstract关键字形容    abstractclass类名{}  ... 查看详情

023_接口类,抽象类,多态,鸭子类型,封装(代码片段)

1,接口类1classWechat():2defpay(self,money):3print(‘已经用微信支付了%s元‘%money)4classAlipay():5defpay(self,money):6print(‘已经用支付宝支付了%s元‘%money)7wechat=Wechat()8ali=Alipay()9#wechat.pay(100)10#ali.pay(200)11#将上面两句用 查看详情

python类和实例化

...例python是面向对象的语言,最主要的就是类和实例,类是抽象的模版创建一个类classStuden(object),class后接类名,定义的类名大些字母开头,object为类的继承,没有合适的继承类用object类,这是所有类最终会继承的类类的实例化:ba... 查看详情

封装多态(代码片段)

...roperty如何使用property多态什么是多态多态的目的如何实现抽象类什么是抽象类目的如何使用鸭子类型什么是鸭子类型多态炫技组合什么是组合? 组合指的是一个对象中的属性,该属性的值指向的是另一个对象。组合的作用? 组合... 查看详情

python基础——类和对象(代码片段)

文章目录对象=属性+方法self是什么公有和私有继承调用未绑定的父类方法使用super函数多重继承组合构造和析构_\\_init_\\_(self[,...])构造方法_\\_new_\\_(cls[,...])方法_\\_del_\\_(self)析构方法什么是绑定对象=属性+方法我们前... 查看详情