多态与抽象以及接口

继承、封装、多态、抽象是面向对象编程的四大基本特征。封装隐藏了类的内部实现机制,在不影响用户使用的前提下,改变类的内部结构,从而保护了数据。继承则是通过重写父类代码,既可以多态,也可以让代码的复用性大大提高。所谓多态,就是同一种行为,不同的对象不同的体现,java的多态弥补了其自身单一继承的缺陷。

多态又分为,静态多态和动态多态。

静态多态是指程序在编译时就能决定其调用的方法,也称编译时多态,说的更直接静态多态实现方式就是方法的重载。

多态多态是指程序在运行中系统多态确定方法所指的对象,也称为运行时多态,其实现方式就是靠重写父类中的同名方法,根据对象实例化后再确定。

多态在涉及到向上和向下转型的概念,为了提高安全性,我们通常用instanceof先做判定。

总结一下,所谓多态就是用父类类型的引用指向子类对象,在java中所有普通方法都默认是多态绑定,声明final可以避免多态绑定的开销提升性能,让JVM不用去寻找而直接执行。

我们用abstract来声明一个抽象类,让子类强制去重写其抽象方法,同时一样可以给子类继承非抽象方法,不用实例化也不能实例化,让代码既有复用性又能通过父类实现多态,但是并不需要在父类中写方法主体。

所谓接口,其特点是所有方法均为抽象方法,与抽象类不同的是,接口可以支持多继承多实现,接口不含构造器,接口中不能包含实例成员变量,但可以有声明为static和final的变量。

接口的出现大大弥补了java单一继承的不足,也为程序的耦合性的提升做出了巨大贡献。

时间: 2024-10-13 22:47:29

多态与抽象以及接口的相关文章

继承、类的高级概念、多态和抽象、接口

private 只能在自己的类中访问得到. public 表 示共有的,在任何类中调到. protected 在所有类中 defult 在自己以及类中调用到. 本类 同一包中不同类 不同包 子类 piviate 是 是 是 是 public 是 是 是 protected 是 是 default 是 extends继承类 super . 类名(): 操类 子类中调用副类方法 public class salary extends Employee{ } 使用“is a ”判断继承是否正确 所有类

类、多态、抽象、接口小结

什么是类 类是具有相同的属性和方法的一堆对象的集合. 什么是对象 万物皆对象,日常生活中能看到和摸到的东西都是对象. 对象由属性和行为组成 属性是对象所具有的特征,行为是对象可以做的动作 类和对象的关系 类是对象的描述,对象是类的实例 对象的每个属性被表示为类中的一个成员变量 对象的每个行为成为类中的一个方法 什么是构造函数 构造函数是类中的一个特殊方法,该方法在对象实例化时被调用.构造函数的用途是当对象实例化时,初始化对象中的成员变量. final关键字 1.final 可修饰变量(创建符号常

多态,抽象,接口

2017-08-04 多态 某一个事物,在不同时刻表现出来的不同状态 多态的前提:有继承关系,有方法重写,有父类引用指向子类对象 多态的体现:继承方面,接口方面,抽象类方面 多态的好处:提高了程序的维护性(由继承保证) 提高了程序的扩展性(由多态保证) 成员访问的特点:成员方法的访问:编译看左边,运行看右边 成员变量的访问:编译看左边,运行看左边 静态方法的访问:编译看左边,运行看左边 多态的弊端:不能访问子类的特有功能 多态的转型:向上转型:从子到父 父类引用指向子类对象 向下转型:从父到子

关于继承、封装、多态、抽象和接口

1.继承:    通过扩展一个已有的类,并继承该类的属性和行为,来创建一个新的类.已有的称为父类,新的类称为子类(父类派生子类,子类继承父类). (1)继承的优点:①代码的可重用性: ②父类的属性的方法可用于子类:  ③子类可扩展父类的属性和方法:  ④设计应用程序变得更加简单. (2)关键字“is a”用于判断父类和子类的继承关系是否正确. (3)Java中继承的实现: public  class  子类 extends  父类{} (4)继承的单根性:在Java中一个类只能有一个父类: 传递

C#封装、多态、抽象、接口、匿名方法等学习

1:封装 将对象进行封装,并不等于将整个对象完全包裹起来,而是根据实际需要,设置一定的访问权限,用户根据不同的权限调用对象提供的功能,在C#语言中,可以使用修饰符public.internal.protected.private分别修饰类的字段.属性和方法. 2:继承,主要是注意继承的格式 [csharp] view plaincopy public class ParentClass  //父类 { public ParentClass(); } public class ChildClass

浅谈C# 多态的魅力(虚方法,抽象,接口实现)

浅谈C# 多态的魅力(虚方法,抽象,接口实现) 分类:             asp.net             C#              2014-02-08 11:29     786人阅读     评论(0)     收藏     举报 浅谈C# 多态的魅力(虚方法,抽象,接口实现) 前言:我们都知道面向对象的三大特性:封装,继承,多态.封装和继承对于初学者而言比较好理解,但要理解多态,尤其是深入理解,初学者往往存在有很多困惑,为什么这样就可以?有时候感觉很不可思议,由此,面向

C# 多态(虚方法,抽象,接口实现)

浅谈C# 多态的魅力(虚方法,抽象,接口实现) 前言:我们都知道面向对象的三大特性:封装,继承,多态.封装和继承对于初学者而言比较好理解,但要理解多态,尤其是深入理解,初学者往往存在有很多困惑,为什么这样就可以?有时候感觉很不可思议,由此,面向对象的魅力体现了出来,那就是多态,多态用的好,可以提高程序的扩展性.常用的设计模式,比如简单工厂设计模式,核心就是多态. 其实多态就是:允许将子类类型的指针赋值给父类类型的指针.也就是同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果.在运行时

java 面向对象三大特性(封装,继承,多态)以及抽象、接口的介绍

封装: 1.定义:隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别. 2.封装的目的是:增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部接口,一特定的访问权限来使用类的成员. 3.封装的基本要求是:把所有的属性私有化,对每个属性提供getter和setter方法,如果有一个带参的构造函数的话,那一定要写一个不带参的构造函数.在开发的时候经常要对已经编写的类进行测试,所以在有的时候还有重写toString方法,但这不是必须的. 继承: 1.目的:实

多态、抽象类、接口_DAY09

1:多态(掌握) (1)多态概念:一种事物的多种形态 (2)体现:父类的引用指向其子类的实例对象;接口的引用指向其实现类的实例对象 (3)特点: 成员方法:编译看左边,运行看右边 运行:子类重写的方法运行 编译:父类的引用类型必须有该方法 成员变量:编译看左边,运行看左边 运行:访问的为父类的属性 编译:父类的引用类型必须有该属性 总结:只有在方法调用的时候,才会判断子类是否重写,重写调用子类方法.其他情况均看父类类型 记忆方法:方法运行看右边,其他看左边 例子: /* 多态: 一种事物的多种形