多态

python基础之组合继承多态

谁都会走 提交于 2019-12-17 11:38:50
组合 1.什么是组合 组合就是一个类的对象具备一个指向另外一个类的对象的属性 2.为何用组合 组合可以减少代码冗余 3.如何使用 class People: def __init__(self,name,age,sex): self.name=name self.age=age self.sex=sex class Course: def __init__(self,name,period,price): self.name=name self.period=period self.price=price def tell_info(self): print('<%s %s %s>' %(self.name,self.period,self.price)) class Teacher(People): def __init__(self,name,age,sex,job_title): People.__init__(self,name,age,sex) self.job_title=job_title self.course=[] self.students=[] class Student(People): def __init__(self,name,age,sex): People.__init__(self,name,age,sex) self.course=[]

继承,多态,抽象类,接口

大兔子大兔子 提交于 2019-12-17 09:04:28
进化表 继承---->多态---->抽象类---->接口 继承关键字:extends 子类将会继承父类所有的功能 例如: class Person{ private String name; private int age; public String getName(){ return name; } public void setName(String name){ this.name = name; } public int getAge(){ return age; } public void setAge(int name){ this.age = age; } } class Student extends Person{ //Student 继承了 Person,有Person所有的功能 } class Test{ public static void main(String[] args){ Student stu = new Student(); stu.setAge(18); System.out.print(stu.getAge()); } } 在java中 没有写extends ,编译器会自动加上 extends Object . 任何类 都会继承Object类,也就是说Object类 是所有类的父类 向上转型: Person p = new Student

python之二类的继承和多态

蹲街弑〆低调 提交于 2019-12-17 05:59:18
什么是继承 继承可以使得子类具有父类的属性和方法或者重新定义、追加属性和方法等。继承是实现代码的复用,相同的代码不需要重复的写。 class Animal : def eat ( self ) : print ( '吃...' ) def drink ( self ) : print ( '喝...' ) class Cat ( Animal ) : def call ( self ) : print ( '喵喵~' ) kitty = Cat ( ) kitty . eat ( ) ###直接继承父类 kitty . drink ( ) 重写 “”" 继承具有传递性 当父类方法不能满足子类的需求的时候可以对方法进行重写 1.覆盖父类的方法 2.对父类的方法进行扩展super.call( ) “”" 1.对原方法覆盖 class Animal : def eat ( self ) : print ( '吃...' ) def drink ( self ) : print ( '喝...' ) def sleep ( self ) : print ( '睡...' ) class Cat ( Animal ) : def call ( self ) : print ( '喵喵~' ) class HelloKitty ( Cat ) : def sepak ( self ) :

JavaSE第九天总结笔记

 ̄綄美尐妖づ 提交于 2019-12-17 04:25:38
第九天总结笔记 每日一结,方便回顾学习 final关键字、多态、抽象类、接口 final关键字(掌握)、多态(掌握)、抽象类(掌握)、接口(掌握)。 final关键字 (1)是最终的意思,可以修饰类、方法、变量。 (2)特点 A: 它修饰的类不能被继承 B: 它修饰的方法不能被重写 C: 它修饰的变量是一个常量 (3)面试相关: A:局部变量 基本类型 值不能发生改变 引用类型 地址值不能发生改变但是对象的内容是可以改变的 B:初始化时机 只能初始化一次 常见的给值 定义的时候(推荐);构造方法中 多态 (1) 同一个对象在不同时刻体现出来的不同状态。 (2) 多态的前提 有继承或者实现关系 有方法重写 有父类或者父接口引用指向子类对象 (3) 多态的分类 具体类多态 class Fu { } class Zi extends Fu { } Fu f = new Zi (); 抽象类多态 abstract class Fu { } class Zi extends Fu { } Fu f = new Zi (); 接口多态 interface Fu { } class Zi implements Fu { } Fu f = new Zi (); (4) 多态中的成员访问特点 A:成员变量 编译看左边,运行看左边 B:构造方法 子类的构造都会默认访问父类构造 C:成员方法 编译看左边

C# 面向对象:封装、继承、多态

一曲冷凌霜 提交于 2019-12-17 01:54:47
面向对象有封装、继承、多态这三个特性,面向对象编程按照现实世界的特点来管理复杂的事物,把它们抽象为对象,具有自己的状态和行为,通过对消息的反应来完成任务。这种编程方法提供了非常强大的多样性,大大增加了代码的重用机会,增加了程序开发的速度,将具备独立性特制的程序代码包装起来,修改部分程序代码时不至于会影响到程序的其他部分。 1.封装 每个对象都包含它进行操作所需要的所有信息,封装只公开代码单元的对外接口,而隐藏其具体实现,尽量不对外公开代码。使用封装有很多好处,从设计角度来讲,封装可以对外屏蔽一些重要的信息,比如使用电脑的人只要知道怎么使用电脑就可以,不用知道这些功能具体是怎么实现的;从安全性考虑,封装使对代码的修改更加安全和容易,封装明确的指出了哪些属性和方法是外部可以访问的,这样当需要调整这个类的代码时,只要保证公有属性不变,公有方法的参数和返回值类型不变,那么就可以尽情的修改这个类,而不会影响到程序的其他部分;封装还避免了命名冲突的问题,封装有隔离作用,不同的类中可以有相同名称的方法和属性,但不会混淆,也可以减少耦合。 2.继承 继承可以使用现有类的所有功能,并在无须重新编写原来的类的情况下,对这些功能进行扩展。使用继承而产生的类被称为派生类或子类,而被继承的类则称为基类或超类或父类。继承表示一个类型派生于一个基类型,它拥有该基类型的所有成员字段和函数,其子类是对父类的扩展

封装,继承,多态

冷暖自知 提交于 2019-12-16 22:03:51
一、封装:   封装是实现面向对象程序设计的第一步,封装就是将数据或函数等集合在一个个的单元中(我们称之为类)。被封装的对象通常被称为抽象数据类型。 封装的意义:   封装的意义在于保护或者防止代码(数据)被我们无意中破坏。在面向对象程序设计中数据被看作是一个中心的元素并且和使用它的函数结合的很密切,从而保护它不被其它的函数意外的修改。   封装提供了一个有效的途径来保护数据不被意外的破坏。相比我们将数据(用域来实现)在程序中定义为公用的(public)我们将它们(fields)定义为私有的(privat)在很多方面会更好。私有的数据可以用两种方式来间接的控制。第一种方法,我们使用传统的存、取方法。第二种方法我们用属性(property)。   使用属性不仅可以控制存取数据的合法性,同时也提供了“读写”、“只读”、“只写”灵活的操作方法。 访问修饰符: Private:只有类本身能存取. Protected:类和派生类可以存取. Internal:只有同一个项目中的类可以存取. Protected Internal:是Protected和Internal的结合. Public:完全存取. 二、继承:   继承主要实现重用代码,节省开发时间。 1、C#中的继承符合下列规则: 继承是可传递的。如果C从B中派生,B又从A中派生,那么C不仅继承了B中声明的成员,同样也继承了A中的成员

封装、继承、多态

时间秒杀一切 提交于 2019-12-16 21:22:05
一、封装:   封装是实现面向对象程序设计的第一步,封装就是将数据或函数等集合在一个个的单元中(我们称之为类)。被封装的对象通常被称为抽象数据类型。 封装的意义:   封装的意义在于保护或者防止代码(数据)被我们无意中破坏。在面向对象程序设计中数据被看作是一个中心的元素并且和使用它的函数结合的很密切,从而保护它不被其它的函数意外的修改。   封装提供了一个有效的途径来保护数据不被意外的破坏。相比我们将数据(用域来实现)在程序中定义为公用的(public)我们将它们(fields)定义为私有的(privat)在很多方面会更好。私有的数据可以用两种方式来间接的控制。第一种方法,我们使用传统的存、取方法。第二种方法我们用属性(property)。   使用属性不仅可以控制存取数据的合法性,同时也提供了“读写”、“只读”、“只写”灵活的操作方法。 访问修饰符: Private:只有类本身能存取. Protected:类和派生类可以存取. Internal:只有同一个项目中的类可以存取. Protected Internal:是Protected和Internal的结合. Public:完全存取. 二、继承:   继承主要实现重用代码,节省开发时间。 1、C#中的继承符合下列规则: 继承是可传递的。如果C从B中派生,B又从A中派生,那么C不仅继承了B中声明的成员,同样也继承了A中的成员

_09_面向对象之继承、多态

断了今生、忘了曾经 提交于 2019-12-16 13:23:09
四. 继承 概念 继承是从已有的类中派生出新的类,新的类能吸收已有类的属性和行为,并能扩展新的属性和行为。 1.1 Java继承特点 1)Java是单继承的,不支持多继承。这样使得Java的继承关系很简单,一个类只能有一个父类,易于管理程序。同时一个类可以实现多个接口,从而克服单继承的缺点。 2)继承关系是传递的 3)private修饰的成员变量或方法是不能被继承的 1.2解决什么问题 提高了代码的效率,避免了代码重写。 图例 2. 语法格式 [修饰符] class 子类 extends 父类 { //类体 } 【示例】 实现一个继承,定义学生类为父类,定义一个大学生类作为子类。 3. super this是指当前对象引用,super是指当前对象的父类对象的引用。由于继承子类可以访问父类的成员,所以this除了可以访问自己的成员还可以访问父类的成员,但是为了明确的指明访问的是父类的成员,则要用关键字super来指定。 【示例】 在大学生类中使用super调用父类的属性和方法。 4. final final表示不可改变的含义 采用final修饰的类不能被继承 采用final修饰的方法不能被重写 采用final修饰的变量不能被修改 final修饰的变量必须显式初始化 如果修饰的引用,那么这个引用只能指向一个对象,该引用不能再次赋值,但对象本身内部可以修改 构造方法不能被final修饰

多态

泄露秘密 提交于 2019-12-16 12:58:36
/*多态的经典例子,要多多研究一下 */class A { public String show(D obj) { return ("A and D"); } public String show(A obj) { return ("A and A"); }}class B extends A { public String show(B obj) { return ("B and B"); } public String show(A obj) { return ("B and A"); }}class C extends B {}class D extends B {}class DynamicTest { public static void main(String[] args) { A a1 = new A(); A a2 = new B(); B b = new B(); C c = new C(); D d = new D(); System.out.println(a1.show(b)); System.out.println(a1.show(c)); System.out.println(a1.show(d)); System.out.println(a2.show(b)); System.out.println(a2.show(c)); System.out

Java 多态

一世执手 提交于 2019-12-16 11:10:27
多态是同一个行为具有多个不同表现形式或形态的能力。 多态性是对象多种表现形式的体现。 比如我们说"宠物"这个对象,它就有很多不同的表达或实现,比如有小猫、小狗、蜥蜴等等。那么我到宠物店说"请给我一只宠物",服务员给我小猫、小狗或者蜥蜴都可以,我们就说"宠物"这个对象就具备多态性。 接下来让我们通过实例来了解Java的多态。 例子: public interface Vegetarian { } public class Animal { } public class Deer extends Animal implements Vegetarian { } 因为Deer类具有多重继承,所以它具有多态性。以上实例解析如下: 一个 Deer IS-A(是一个) Animal 一个 Deer IS-A(是一个) Vegetarian 一个 Deer IS-A(是一个) Deer 一个 Deer IS-A(是一个)Object 在Java中,所有的对象都具有多态性,因为任何对象都能通过IS-A测试的类型和Object类。 访问一个对象的唯一方法就是通过引用型变量。 引用型变量只能有一种类型,一旦被声明,引用型变量的类型就不能被改变了。 引用型变量不仅能够被重置为其他对象,前提是这些对象没有被声明为final。还可以引用和它类型相同的或者相兼容的对象。它可以声明为类类型或者接口类型。