抽象封装继承多态的概念,继承,多态是什么意思?


选择擅长的领域继续答题?{@each tagList as item}
${item.tagName}
{@/each}手机回答更方便,互动更有趣,下载APP
展开全部很好理解啊封装性:就是一个盒子,你把某个功能,某个组件,放在里面,从而形成一个整体,隐藏内部的具体实现,给出你要给出的服务继承性:就是有共性,能继承,打个比方,类A的功能是a,B的功能是b,C具有功能a,b,C就不用在编写a,b,继承A,B就行了,就像发动机,你要用发动机,又不想再造的话,就得继承多态性:就是多种状态,就是同名但有区别,java里面的元素只要有区别就有多态,比如变量,他在同一个函数的不同位置可以同名吧,还有函数名,很显然,这个就是多态了,说的复杂一点,就是你要实现一个相同的功能,但又有不同,比如返回,即结果不同,不如输入不同,但有个相同的名字,这就是多态了回答辛苦,Lz打赏展开全部
封装性是指的把代码封装到大括号中,只能访问自己内部的数据,外边的东西访问不了.继承性就是一个类声明继承另一个类,那么另一个类就是它 的父类,父类里边的变量跟方法子类可以直接拿来用,除非父类的访问权限不允许.
多态分为方法的重载和重写,重载是指方法的名和返回类型相同,但是参数不同.重写是指子类继承父类的方法,但是在子类自己类体里边又写了一个方法, 跟父类中的方法名,返回类型,参数列表都完全一样,但是方法体不同,也就是说它有自己的实现方式.这就是重写.
展开全部
封装性是指的把代码封装到大括号中,只能访问自己内部的数据,外边的东西访问不了.继承性就是一个类声明继承另一个类,那么另一个类就是它 的父类,父类里边的变量跟方法子类可以直接拿来用,除非父类的访问权限不允许.
多态分为方法的重载和重写,重载是指方法的名和返回类型相同,但是参数不同.重写是指子类继承父类的方法,但是在子类自己类体里边又写了一个方法, 跟父类中的方法名,返回类型,参数列表都完全一样,但是方法体不同,也就是说它有自己的实现方式.这就是重写.
来自:求助得到的回答本回答被网友采纳收起 更多回答(2)

1。类是对对象的一个抽象,同时类也为对象进行了封装。所谓封装是说类的设计者只是为使用者提供类 对象可以访问的部分,而对于类中其他隐藏起来的成员变量 方法,用户不能访问。
  实现方式:A:在类的定义中设置对对象中成员变量和方法进行访问的权限;
  B:提供一个统一的供其他类引用的方法;
  C:其它对象不能直接修改文本对象所拥有的属性和方法。
  2。访问权限:
  A:private的成员变量和方法只能被这个类本身的方法访问;
  B:默认的成员变量和方法只被同一个包内的其它所有类都可访问,包外不可;
  C: protected的成员可以被这个类的本身、它的子类(同不同包均可)访问;
  D: public 完全公开。一个程序里最多只能有一个类被修饰为public,若程序中没有任何public 类,且文件名是程序中的一个类名,则该类被视做public
  注:不能用protected和private饰!!!!
  3。类的继承:
  3.1 类继承的实现:
  A:java中Object类是java中所有类的祖宗!(P209)
  儿子A extends 老爸------只能有一个老爸!
  3.2 this和super:
  this: this.数据成员 this.实例方法 this(参数)--引用本类中其他构造方法。
  super:表示当前对象父类对象的引用
  super.数据成员 super.实例方法 super(参数)--引用父类的构造方法。--通常在实现子 类的构造方法时,要先调用父类的构造方法!并且用来调用父类构造方法的super()必须放在子类构造方法的句首
  3.3 初始化顺序:
  A 对象的初始化顺序: 先静态成员,再非静态成员,再构造方法,
  B 继承中构造方法的调用顺序: 先父类,再子类。
  3.4 对象之间的类型转换:
  对象转换的圣经:只能说猫是哺乳动物,不能说哺乳动物是猫!!!当说猫是哺乳动物时,猫将失掉猫独有的属性和行为!!!(作为猫时新增的成员变量和方法)
  哺乳动物 aa=new 猫()---猫是哺乳动物(要通过IS-A测试)
  4.千呼万唤始出来------多态!
  所谓多态就是同一方法获得不同的行为特性!
  分为:
  A 编译时多态性---重载 (参数个数不同或参数类型不同)
  B 动态多态性----覆盖( 改写后的方法不能比覆盖的方法有更严格的访问权限--只能更加开放& 改写后的方法不能比被覆盖的法产生更多的例外)
  ******************************************************************
  放点小音乐吧!
  **** ******* 第一曲 final:
  1。final type 变量名=初值---常量
  2。final 方法---该方法任何时候都不可以覆盖,但可以被重载。
  3。final 类 ----该类不能被继承并覆盖其内容。(像System类,String类)
  第二曲 native: 本地引用说明符^@^
  java允许在程序中直接引用本地机上非java语言编写的程序。
  native type programName([参数列表]);
  programName是要引用的程序名,以方法的形式出现。由于是引用,具体执行的操作都包含在源程序中,所有programName后无具体方法体!
  ******************************************************************
  一。深入继承:
  1》设计继承树:
  (1)找出具有共同属性和行为的对象(狼和狗与羊^^---动物共同的属性)
  (2)设计代表共同状态与行为的类(都属于动物!---父类)
  (3)决定子类是否需要让某项行为有特定不同运作的方式(都会吃,但羊只吃草---方法的覆盖)
  (4)通过寻找使用共同行为的子类找出更多抽象化的机会(狼和狗属于犬科!!!--再继承)
  (5)检查设计是否合理(IS-A)
  (6)大功告成!
  2》继承的意义:
  (1)避免了重复的代码(子类会时时响应父类的改变)
  (2)定义出共同的协议(服务于多态^^)
  ?当定主义出一组类的父型时,你可以用子型的任何类来填补任何需要或期待父型的位置?
  二。深入多态:
  (1) class Vet{
  public void giveShot(Animal a){
  a.makeNoise();
  }
  }
  class PetOwner{
  public void start(){
  Vet v=new Vet();
  Dog d=new Dog();
  Hippo h=new Hippo();
  v.giveShot(d);
  V.giveSHot(h);
  }
  }
  在此例中如果用Animal类型来声明它的参数(返回类型、数组的类型),则程序代码就可以处理所有Animal的子类。这意味 着其它人只要注意到要扩充过Animal就可以利用你的Vet!(P168)
  如果此例不用多态,那么每一种动物都要写出不同的方法--这是何等悲哀!!
  (2)接口:
  多态意味着“很多形式”,可以把儿子当作爸爸或爷爷!!
  可以通过继承来定义相关类间的共同协议(方法就是协议的标志!),这样就等同于在对其他程序代码声明:“我所有的子类都能肠系用这些方法来执行这几项工作!”
  为了避免出现“致命方块”所以java不允许出现多继承,接口正是我们的救星!java接口是100% 的纯抽象类。而且使用接口可以继承一个以上的来源,同时其他类也可以实现同一个接口中。所以可以为不同的需求组合出不同的继承层次!
  三。如何判断应该是设计类、子类、抽象类或接口呢?
  (1)如果新类无法对其他的类通过IS-A测试时,就设计不继承其他类的类。
  (2)只有在需要某类的特殊化版本时,以覆盖或增加新的方法来继承现有的类。
  (3)当你需要定义一群子类的模板,又不想让其他人初始化此模版时,设计出抽象的类给他们用。
  (4)如果想要只定义出类可以扮演的角色,使用接口。

我要回帖

更多关于 抽象封装继承多态的概念 的文章

 

随机推荐