zoukankan      html  css  js  c++  java
  • 面向对象高级部分

    一、知识点

    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();//实现类对象作为接口对象使用

            }

        }    

  • 相关阅读:
    杭电 Problem
    杭电Problem 5053 the sum of cube 【数学公式】
    杭电 Problem 2089 不要62 【打表】
    杭电 Problem 4548 美素数【打表】
    杭电 Problem 2008 分拆素数和 【打表】
    杭电 Problem 1722 Cake 【gcd】
    杭电 Problem 2187 悼念512汶川大地震遇难同胞——老人是真饿了【贪心】
    杭电Problem 1872 稳定排序
    杭电 Problem 1753 大明A+B
    东北林业大 564 汉诺塔
  • 原文地址:https://www.cnblogs.com/wusha/p/6696633.html
Copyright © 2011-2022 走看看