• 面向对象高级部分


    一、知识点

    1.1  继承

    1.2  抽象类

    1.3  接口

    1.4  多态

    二、具体内容

    举个例子:人类,有姓名,年龄的属性和说话的方法

         学生类,姓名、年龄、学号的属性和说话、考试的方法

         Strudent类比Person类多了学好的属性和考试的方法

        public class Student extends Person{

          private String stuNo;

          public String getStuNo(){

          return stuNo;

          }

          public String setStuNo(String stuNo){
          this.stuNo=stuNo;

          }

          public void test(){

          }

        }

    继承的功能:

      通过继承可以简化子类的定义

      通过继承可以扩展子类的功能

      继承具有层次结构

      子类可以继承父类的一切非私有的属性和方法,子类扩展了父类的功能,同时把父类一切非私有的属性全部都继承了下来

    继承的规定:

      java只支持单继承//不能extends perosn,anotherPerson

      java允许多层继承:

      在实例化子类对象的时候,会先调用父类的构造方法再调用子类的构造方法,调用父类的构造方法就是为了给子类对象开辟空间,并且可以为类中的属性初始化值。

    讲一下this,和super关键字的区别,this本类中的对象属性和方法,super父类中的对象和属性和方法,具体区别如图

      

    序号

    this

    super

    1调用属性

    调用本类属性

    调用父类属性

    2调用方法

    调用本类方法

    调用父类方法

    3调用构造方法

    调用本来构造方法

    调用父类构造方法

    4表示对象

    表示当前类对象

    表示的父类的对象

    重点,方法覆写和重载的区别

    在继承关系中子类复写父类的方法,实现不同的功能,叫做方法的复写,在复写之后子类调用的永远都是子类复写之后的方法,子类复写之后的方法权限不能小于父类被复写方法的访问权限

    序号

    覆写

    重载

    1概念

    方法名称一样,访问权限大于或等于父类被复写方法的权限,参数相同,返回值类型相同

    方法名称相同,返回的参数的个数,类型,顺序不同

    2使用范围

    在继承关系中

    在同一个类中

     重点,抽象类和接口

    相同:都不能直接实例化

    不同:抽象类包含抽象方法,一般方法、常量、变量、可以有构造、抽象类可以实现接口、只能单继承

       接口只有抽象方法和常量、不能有构造、不能继承抽象类、可以多继承实现

    抽象类

    接口

    相似

    不能直接实例化

    不同

    包含抽象方法,一般方法,常量,变量

    只有抽象方法和常量

    可以有构造方法

    不能有构造方法

    抽象类可以实现接口

    接口不能继承抽象类

    单继承的局限

    多继承多实现

    重点,多态

         方法的重载和覆写是面向对象多态性的一个体现

            抽象类的子类对象可以作为抽象类对象使用

            接口的实现类对象可以作为接口的对象使用

    /**

     * 抽象类

     * @author Administrator

     *

     */

        public abstract class SSEPTMOKE {

              void smoking();//抽象方法

        }

        

        public class OopDemo02 {

            public static void main(String[] args) {

                SMOKE smoke = new SEPTSMOKE();//子类对象作为父类对象使用

                smoke.smoking();

                A a = new AImp();//实现类对象作为接口对象使用

            }

        }    

  • 相关阅读:
    Github基于Web的编辑器
    科技爱好者周刊(第 172 期):我们会死于气候灾难吗?
    走进京东618大促“产星”之路
    科技爱好者周刊(第 171 期):云服务流量有多贵?
    科技爱好者周刊(第 170 期):软件订阅制的胜利
    科技爱好者周刊(第 169 期):五菱汽车的产品设计
    在Chrome中打开网页时出现以下问题 您的连接不是私密连接 攻击者可能会试图从 x.x.x.x 窃取您的信息(例如:密码、通讯内容或信用卡信息)
    mac 更新到big sur 后,parallels虚拟机的一些问题:由于您尚未获得访问其中一些文件的授权,所以您不能恢复“Windows 10
    React/Vue 项目在 GitHub Pages 上部署时资源的路径问题
    科技爱好者周刊(第 168 期):游戏《底特律:变人》
  • 原文地址:https://www.cnblogs.com/wusha/p/6696633.html
Copyright © 2020-2023  润新知