面向对象知识点整理(1)

1.封装

封装的好处
1、提高了代码的复用性。
2、隐藏了实现细节,还要对外提供可以访问的方式。便于调用者的使用。这是核心之一,也可以理解为就是封装的概念。
3、提高了安全性。

2.继承

概念

类的继承是指在一个现有类的基础上去构建一个新的类,构建出来的新类被称作子类,现有类被称作父类,子类会自动拥有父类所有可继承的属性和方法。

注意 :1.对于父类private 修饰的成员,子类只有拥有权没有使用权,不能够直接访问,但是可以通过父类的public 方法(get)访问

   2.被final修饰的成员也不可以被继承

继承的好处
1.继承的出现提高了代码的复用性,提高软件开发效率。
2.继承的出现让类与类之间产生了关系,提供了多态的前提。

继承的特点

1.单继承性(一个类只能继承一个父类)

2.多个类可以继承一个父类(一个类可以有多个子类)

3.可以多层继承(一个类的父类可以再去继承另外的父类)

4.子类和父类是一种相对概念,也就是说一个类是某个类父类的同时,也可以是另一个类的子类。

继承中成员变量的特点

1.父类中的成员变量是非私有的,子类中可以直接访问,若父类中的成员变量私有了,子类是不能直接访问的。

2.当子父类中出现了同名成员变量时,在子类中若要访问父类中的成员变量,必须使用关键字super来完成。
super用来表示当前对象中包含的父类对象空间的引用。

继承中成员方法的特点

1.当在程序中通过对象调用方法时,会先在子类中查找有没有对应的方法,
  若子类中存在就会执行子类中的方法,
  若子类中不存在就会执行父类中相应的方法。

2.子类中出现与父类一模一样的方法时,会出现覆盖操作,也称为override重写、复写或者覆盖。
(子类方法覆盖父类方法,必须要保证权限大于等于父类权限)

3.多态

多态的概念

最终多态体现为父类引用变量可以指向子类对象。

多态的前提是必须有子父类关系或者类实现接口关系,否则无法完成多态。

在使用多态后的父类引用变量调用方法时,会调用子类重写后的方法(原因是父类可能是接口或者父类的方法是抽象方法)

多态中成员变量的特点

编译时期:参考的是父类中是否有被调用的成员变量。没有,编译失败。

运行时期:也是调用父类中的成员变量。

简单记:编译和运行都参考等号的左边。编译运行看左边。

多态中成员方法的特点

编译时期:参考父类,如果父类中没有调用的方法,编译失败。

运行时期:参考子类,并运行对象所属类中的成员方法。

简而言之:编译看左边,运行看右边。

总结:无论是成员变量还是成员方法 编译 都参考父类,父类中没有编译失败;

          运行时成员变量看父类,

   成员方法分情况:

          如果父类成员方法是静态方法,是不允许子类重写的,所以参考父类;

     如果不是静态的则参考子类重写后的方法;

  

          因为编译都是参考的父类所以无法访问到子类中独有的成员;如果要访问必须要向下转型(强转);

   强转的前提是该对象已经是一个向上转型的对象;

多态的好处:

隐藏了子类类型,提高了代码的扩展性。

原文地址:https://www.cnblogs.com/lxzwhite/p/10898701.html