首页 > 代码库 > 面向对象高级部分

面向对象高级部分

一、知识点

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

        }

    }    

面向对象高级部分