精华内容
下载资源
问答
  • python封装继承多态笔记,python封装继承多态笔记,python封装继承多态笔记适合初学者学习!
  • 该实例我是一篇文章的源代码,解释了什么是封装继承和多态,地址https://blog.csdn.net/wangjianbo09/article/details/82222807
  • 该实例我是一篇文章的源代码,解释了什么是封装继承和多态,地址https://blog.csdn.net/wangjianbo09/article/details/82222807
  • javascript 封装 继承

    2019-03-26 01:32:38
    NULL 博文链接:https://kongxiantao.iteye.com/blog/1150676
  • 封装 继承和多态

    2021-01-28 23:05:36
    封装继承和多态 封装 我们在设计程序时,讲究六个字,高内聚,低耦合 封装就是我们对数据进行隐藏,多用于来封装属性,封装方法较少。 记住封装的核心,就是私有(private) 令属性为私有后我们调用不了类里面的属性...

    封装继承和多态

    封装

    我们在设计程序时,讲究六个字,高内聚,低耦合
    封装就是我们对数据进行隐藏,多用于来封装属性,封装方法较少。

    记住封装的核心,就是私有(private)

    令属性为私有后我们调用不了类里面的属性,所以我们设置一些get方法和set方法来操作私有的属性

    get方法,set方法


    public int getAge(){
    	return age;
    }
    
    public void setAge(int age){
    	this.age = age;
    }
    

    具体代码应用

    设置一个学生类,令其定义的属性私有
    在类里面设置get set方法,使主函数可以调用类里面私有的属性

    package com.oop.demo03;
    
    public class Student {
    
        //属性私有
        private String name;
        private int id;
        private char sex;
        private int age;
    
        //提供一些可以操作这些属性的方法
        //提供一些public的get和set方法
    
        //get方法 得到这个属性
        public String getName(){
            return this.name;
        }
    
        //set 为属性设置一些值
        public void setName(String name){
            this.name=name;
        }
    
        //alt+insert 自动生成get set方法
        public int getId() {
            return id;
        }
    
        public void setId(int id) {
            this.id = id;
        }
    
        public char getSex() {
            return sex;
        }
    
        public void setSex(char sex) {
            this.sex = sex;
        }
    
        public int getAge() {
            return age;
        }
    
        public void setAge(int age) {
            if (age>150 || age<0){//不合法的
                this.age=3;
            }
            else {
                this.age = age;
            }
        }
    }
    
    

    设置一个应用类,用来操作学生类

    import com.oop.demo03.Student;
    
    public class Application {
        public static void main(String[] args) {
    
            Student s1 = new Student();
    
            s1.setName("小张");
            System.out.println(s1.getName());
    
            s1.setAge(999);//不合法的年龄
            System.out.println(s1.getAge());
    
        }
    
    }
    
    

    在这里插入图片描述
    在idea里可以使用快捷键alt+insert快速生成get set 方法

    继承

    • 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。
    • java中只能单继承,一个父亲可以有多个儿子,但是一个儿子只能有一个父亲
    • 子类可以继承父类的全部方法,私有不可以被继承。

    关于生活中的继承
    人类(Person) //父类
    - 老师类(Teacher) //子类,派生类
    - 学生类(Student) //子类,派生类

    public
    protect
    default
    private
    

    继承格式

    class 父类 {
    }

    class 子类 extends 父类 {
    }

    代码举例

    创造一个Person类

    public class Person {
    
    
    
        public int money = 1_0000_0000;
        public void say(){
            System.out.println("说了一句话");
        }
    
    }
    
    

    创造一个Student类继承Person类

    public class Student extends Person {
    }
    
    

    在Application中进行测试

    public class Application {
        public static void main(String[] args) {
    
            //因为Student继承了父类,所以可以直接使用父类的方法
            Student student = new Student();
            student.say();
            System.out.println(student.money);
    
        }
    }
    

    在这里插入图片描述
    代码结果证明,子类可以完全继承父类的方法

    super方法

    • super调用父类的构造方法,必须在构造方法的第一个
    • super必须只能出现在子类的方法或者构造方法中
    • super和this不能同时调用构造方法

    父类

    public class Person {
    
        protected String name =  "小张";
    
    }
    
    

    子类

    public class Student extends Person {
        private String name = "小小张";
    
        public void test(String name){
            System.out.println(name);
            System.out.println(this.name);
            System.out.println(super.name);
    
        }
    
    }
    

    主函数

    public class Application {
        public static void main(String[] args) {
    
            Student student = new Student();
    
            student.test("张瑞");
        }
    }
    
    

    在这里插入图片描述

    方法重写

    重写可以理解为子类想要改变父类原来的方法,所以重写了方法
    重写:

    1. 需要有继承关系,子类重写父类的方法
    2. 方法名必须相同
    3. 参数列表必须相同
    4. 抛出异常的方位可以缩小不能扩大
    5. 方法体不同
    public class B {
    
        public void test(){
            System.out.println("B=>test()");
        }
    }
    
    
    public class A extends B{
    
        @Override
        public void test() {
            System.out.println("A=>test()");
        }
    }
    
    
    public class Application {
        public static void main(String[] args) {
            A a = new A();
            a.test();
    
            B b = new A();
            b.test();
        }
    }
    

    在这里插入图片描述

    多态

    多态就是一个方法可以根据发送对象的不同而采取多种不同的行为的方式
    一个对象的实际类型是确定的,但可以指向对象的引用的类型有很多

    多态存在的条件

    • 有继承关系
    • 子类重写父类方法
    • 父类引用指向子类对象
    • 注意:多态是方法的多态,属性没有多态性。

    多态注意事项:

    1.多态是方法的多态,属性没有多态

    2.父类和子类,有联系类型转换异常! ClassCastException !

    3.存在条件:继承关系, 方法需要重写,父类引用指向子类对象! Father f1 = new Son();

    下面三种类型不可以重写,没有多态:

    1. static方法,属于类,它不属于实例
    2. final 常量;
    3. private方法;

    父类

    public class Person {
        public void rnu(){
            System.out.println("run");
        }
    
    }
    

    子类

    public class Student extends Person {
        @Override
        public void rnu() {
            System.out.println("son");
        }
    
        public void eat(){
            System.out.println("eat");
        }
    }
    

    测试

    public class Application {
        public static void main(String[] args) {
    
    
            Student s1 = new Student();
            Person s2 = new Student();
            Object s3 = new Student();
    
            s1.rnu();
            s2.rnu();
    
            s1.eat();
    
        }
    }
    
    

    在这里插入图片描述

    写在最后
    最短的距离是手到嘴,最长的距离是说到做

    展开全文
  • 使用Java三大特性,编写喷墨打印机和针式打印机类,通过test调用,控制台打印输出
  • 详解java封装继承多态

    2020-08-26 04:46:57
    主要介绍了java封装继承多态,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • C++封装继承多态理解

    2020-12-29 19:33:05
    面向对象的三个基本特征: 封装继承 、多态 简单概括三大特性作用: 封装是为了代码模块化和增加安全性 继承是为了重用和扩展现有的代码模块 多态是为了接口复用 封装: 保护数据成员,不让类以外的程序...

    面向对象的三个基本特征: 封装 、继承 、多态

    简单概括三大特性作用:
        封装是为了代码模块化和增加安全性
        继承是为了重用和扩展现有的代码模块
        多态是为了接口复用
        
    封装:
        保护数据成员,不让类以外的程序直接访问或者修改类的成员,只能通过其成员对应方法访问(即数据封装)
        隐藏方法实现的具体细节,仅仅提供接口, 内容修改不影响外部调用(即方法封装)    
        
    继承:
        三种继承方式:public、protected、private。
        继承的目的: 重用代码,一个类B继承另一个类A,则B就继承了A中申明的成员以及函数
        派生的目的: 代码扩展,继承自一个类然后添加自己的属性和方法则实现代码的扩展
    缺陷:
        父类变化了子类必须变化 增加了耦合性
                    
    多态:
        接口的复用,一个接口多种实现
        用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数
    C++多态性是通过虚函数来实现的, 虚函数允许子类重新定义成员函数,而子类重新定义父类的做法称为覆盖或者重写
    函数重载为允许多个不同名称的函数,这些函数函数列表不同或者函数个数不同或者两者都不同
        
    编译时多态:主要指方法的重载 (在编译器编译期间就可以确定函数的调用地址,并产生代码,是静态的)
    运行时多态:通过虚函数实现     (在运行时确定的调用地址)

    C++中,实现多态有以下方法:虚函数、抽象类(至少包含一个纯虚函数 不能创建实例)、重载、覆盖、模板。    
        
    继承时的构造函数:
    (1)基类的构造函数不能被继承,派生类中需要声明自己的构造函数
    (2)声明构造函数时 只需要对本类新增成员进行初始化,对继承基类成员的初始化 自动调用基类构造函数完成
    (3)派生类的构造函数需要给基类的构造函数传递参数
    (4)单一继承是构造函数为
        派生类名::派生类名(基类所需要的形参, 本类所需要的形参):基类名(参数){本类成员初始化赋值}
    (5)当基类中声明有默认形式的构造函数或未声明构造函数时 派生类构造函数可以不向基类传递参数
    (6)若基类中未声明构造函数,派生类中也可以不声明 全采用缺省形式构造函数
    (7)    当基类中声明有带行参的构造函数时,派生类也应该声明带形参数构造函数,并将参数传递给基类构造函数
    (8)构造函数的调用顺序
        a 调用基类构造函数, 调用顺序按照他们被继承是声明的顺序(从左至右)
        b 调用成员对象的构造函数,调用顺序按照他们在类的声明顺序
        c 派生类的构造函数体中的类容
    继承时的析构函数:    
    (1)基类的析构函数不能继承 派生类自行声明
    (2)声明方法与一般(无继承)类的析构函数相同
    (3)不需要显示的调用基类的析构函数 系统会自动隐士调用
    (4)析构函数的调用次序和构造函数相反
        a 派生类中成员指针的析构 派生类自己析构
        b 派生类成员对象析构
        c 基类析构 从右到左顺序
            
        

    展开全文
  • OC封装继承多态演示

    2017-04-07 21:49:26
    只是一个简单的小例子,演示了OC中的封装继承多态,在Windows下打成的zip压缩包
  • C#封装继承多态

    2014-11-05 10:29:54
    这是关于C#封装继承多态的一个简单的例子,对于深入学习C#中封装继承多态将很有帮助!
  • java封装继承.docx

    2021-03-31 11:59:44
    学习java使用封装继承
  • 个人对于封装继承多态的理解

    千次阅读 2020-04-06 19:40:13
    学的差不多了,是时候对于学习的内容弄个总结,在这里写一下对于封装继承多态的理解,本人小白,有说的不对和不详细的地方勿喷,主要是对自己的一个总结 一.封装 本人觉得封装就像是一种包装,将类的内部的一些隐藏...

    前言
    学的差不多了,是时候对于学习的内容弄个总结,在这里写一下对于封装继承多态的理解,本人小白,有说的不对和不详细的地方勿喷,主要是对自己的一个总结

    一.封装

    本人觉得封装就像是一种包装,将类的内部的一些隐藏信息隐藏起来,让外界的程序不能直接访问,只能通过类提供的一些方法来进行访问,最常见的就是set或者get方法,这就是封装的“开闭原则”,
    即禁止外部直接访问类内部信息

    二.继承

    对于继承呢,其实这就是一种类与类之间的一种关系,即子类拥有父类所有的方法和属性,但是除了父类中private修饰的属性,这样可以形成代码的复用

    三.多态

    多态分为引用多态和方法多态,其中引用多态表示父类既可以引用自己本类对象,又可以引用子类对象。
    方法多态就是对于子类重写了父类的方法,方法之间还可以进行重载,子类对象调用不同的方法从而表现出多态。
    多态本人理解为一个对象表现出不同的行为就是多态。

    展开全文
  • Java封装继承多态实例以及文件流操作,自己整理的东西,用了单态模式实现了多态,并且贯彻了OOP思想,用到了文件流的写入与读取,希望对大家有帮助
  • 安老师 的一个例子,c++ 的封装继承多态例子
  • 主要介绍了JavaScript使用prototype原型实现的封装继承多态,涉及javascript prototype与面向对象程序设计相关操作技巧,需要的朋友可以参考下
  • 封装继承多态

    千次阅读 2018-08-08 11:03:46
    封装: 将对象的属性方法进行隐藏,只对特定的对象提供访问权限,通过权限修饰符,方法的参数隐藏来实现隐藏具体的实现过程,从而达到保护数据隐私,...继承: 简单的理解就是以现有类为基础,复制它,然后通过添...

    封装:

    将对象的属性方法进行隐藏,只对特定的对象提供访问权限,通过权限修饰符,方法的参数隐藏来实现隐藏具体的实现过程,从而达到保护数据隐私,计算思维中有一个重要的概念是抽象,即忽略具体,关注重点,这个思想在封装中也有体现, 在接口的定义和实现方式,也有封装的思想,将具体的方法实现进行封装,对外只提供方法的定义,实现了对具体操作的隐藏。

    继承:

    简单的理解就是以现有类为基础,复制它,然后通过添加和修改这个副本来创建新类。继承现有类型时,子类拥有父类的所有成员,更重要的是子类复制了基类的接口,即所有可以发送给基类对象的消息同时也可以发送给导出类对象,子类的确继承了父类的所有属性和方法,因为权限修饰符的关系,访问也有一些限制;

    子类和基类之间的关系:

    is-a:当继承只覆盖基类的方法的时候,意味着他们子类和基类是完全相同的类型,子类可以完全替代一个基类,这种视为纯粹替代,这种情况下的基类与子类的关系为is-a(是一个)关系。

    Is-like-a:当需要在子类中扩展基类没有的属性或者方法的时候,这个子类仍然可以替代基类,但这种替代并不完美,因为在基类无法访问新添加的方法,所以这种情况下的基类和子类的关系为is-like-a(像一个)关系。

    多态:

    向上转型:对象可以作为它自己本身的类型引用,也可以作为它的基类型的引用,即把这个某个对象的引用视为对其基类的引用的做法称作向上转型。

    首先多态是建立在继承的基础上的,对于使用基类的类型,而在实例化的使用子类的类型,对于方法的调用,编译器是如何来判断是调用基类的方法还是子类的方法?根据方法调用绑定。将一个方法调用和同一个方法的主体关联起来被称作绑定,这在程序执行前进行绑定,叫做前期绑定,这个是不需要选择就默认的绑定方式。后期绑定,即在运行时根据对象的实际调用来进行绑定,后期绑定也叫动态绑定或运行时绑定。注:除了static方法和final方法之外,其他的所有方法都是后期绑定。

    构造器和多态:基类的构造器总是在子类的构造过程中被调用,而且是按照继承层次逐渐向上链接,以使每个基类的构造器都可以得到调用,因为只有基类的构造器具有恰当的知识和权限来对自己的元素进行初始化,因此必须令所有的构造器都得到调用,才可以正确的构造完成的对象,在构造的过程中,如果没有明确的指定调用的某个基类的构造器,就会默默的调用默认构造器。

     

    如有异议,敬请提出,谢谢观看,与君共勉。

    展开全文
  • 面向对象技术三大特性:封装继承,多态 封装 封装的概念体现在类抽象和对象实例化,封装就是将数据和对数据的操作封装在一个类中,用类对数据进行了抽象 继承 (1)如果两个类的关系存在一种所属关系,...
  • C#里封装 继承 多态(包教包会)

    千次阅读 2018-09-15 15:04:59
    一、封装 C#中可使用类来达到数据封装的效果,这样可以使数据与方法封装成单一元素,以便于通过方法存取数据。除此之外,还可以控制数据的存取方式。 在面向对象编程中,大多数都是以类作为数据封装的基本单位。类...
  • 面向对象又有三个特性,封装继承和多态。 先来说一个封装: 封装就是又叫做隐藏实现,就是只公开代码单元的对外接口,隐藏具体实现的过程。 在java中,封装是通过访问控制符来实现的,访问控制符有public,private,...
  • 在上文中,我利用prototype的原理做了一个封装的New,然后我就想到,我是否可以用prototype的原理进一步封装面向对象的一些基本特征呢?比如继承
  • 细品java封装继承多态

    多人点赞 2020-04-02 22:13:46
    目录: 1.封装 2.继承 3.多态 1.封装
  • java封装 继承 多态 的概念和作用

    千次阅读 2019-12-01 14:46:43
    在java中,我们对类的封装,对方法的封装,在其他类中只需要调用这个类或者方法就行。 通俗点理解,我们在启动汽车的时候。汽车对里面的零件构造进行了封装,只要提供给我们一个钥匙口,我们只需要用钥匙启动就行...
  • 面向对象有三大特性:封装继承与多态。通过简单易于理解的案例和概念,依次学习该三大特性。
  • 主要介绍了Java面向对象编程(封装/继承/多态)实例解析的相关内容,具有一定参考价值,需要的朋友可以了解下。
  • 该文档是我参加java培训期间学到面向对象还有集合的时候所记录的笔记,有图有文字,主要有继承封装,多态和集合,非常适合刚学习的新手,很有建设性,对小白帮助比较大
  • 【面试题】Java三大特性封装继承多态总结

    万次阅读 多人点赞 2017-10-18 22:15:34
    本文内容总结于多篇博客,参考到的地方在文中都会一一列出 ... ...1.封装 ...封装的定义: ...首先是抽象,把事物抽象成一个类,其次才是封装,将事物拥有的属性和动作...封装符合面向对象设计原则的第一条:单一性原则,一
  • Java基础之封装继承ppt

    2017-11-11 17:58:30
    Java基础封装继承的PPT,适用于基础学习者,很有用的资源
  • java的封装继承和多态

    万次阅读 多人点赞 2018-03-31 16:42:22
    this的用法: 1、this调用本类中的属性,也就是类中的成员变量 2、this调用本类中的其他方法 3、this调用本类中的其他构造方法,调用时要放在构造方法的首行面向对象特征之封装(Encapsulation...
  • java封装继承多态

    千次阅读 多人点赞 2018-12-20 16:04:19
    java封装继承多态 面向对象 面向对象的三个特征: 封装(Encapsulation); 继承(Inheritance); 多态(Polymorphism)。 我的总结: 面向过程:强调的是具体的功能实现;(执行者) 面向对象:强调的是具备...
  • python中的三大特点:封装 继承 多态

    千次阅读 多人点赞 2018-09-06 16:35:22
    继承:将公共的属性和方法放在父类中,自己自考虑特有的属性和方法。 多态:程序运行过程中,根据执行条件的不同,动态执行不同的操作代码的过程称为运行时多态。 一 封装 1.封装是面向对象编程的一大特点 2....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 589,227
精华内容 235,690
关键字:

封装继承