关于继承、封装、多态、抽象和接口

1.继承:

       通过扩展一个已有的类,并继承该类的属性和行为,来创建一个新的类。已有的称为父类,新的类称为子类(父类派生子类,子类继承父类)。

   (1)继承的优点:①代码的可重用性;

           ②父类的属性的方法可用于子类;

           ③子类可扩展父类的属性和方法;

           ④设计应用程序变得更加简单。

   (2)关键字“is a”用于判断父类和子类的继承关系是否正确。

   (3)Java中继承的实现:

public  class  子类 extends  父类{}

   (4)继承的单根性:在Java中一个类只能有一个父类;

        传递性:一个Java类可以父类,父类也可以有父类。

   (5)所有类的根类:Object类,又叫基类或超类。Object类是每个Java类的父类,要么是直接的父类,要么就是间接的父类。

            Object类中的三个重要方法:

                ①public  boolean  equals(Object x):检测两个对象是否相等。该方法经常被重写。若两个对象通过该方法判断是相等的,那么两个对象的                                                                                                      hashCode()方法应该产生相同的哈希码

                ②public  String  toString:该方法返回对象的字符串表示。用字符串来表示对象有助于调试或测试。

                ③protected  void  finalize()  throws  Throwale:该方法在对象将要被垃圾回收时调用。

    (6)方法重写:子类可以重写从父类继承的方法,从而允许子类添加或者改变父类中方法的行为。该行为方法生在子类中,对父类方法重写。

子类重写父类方法时,必须遵循如下规则:

              ①子类的方法的返回值类型、方法名和形式参数列表必须和父类中的是相同的;

              ②访问修饰符必须不小于父类中的访问修饰符;

              ③子类中重写抛出的异常不能比父类中抛出的异常多。

  (7)super 关键字:子类想要给继承的方法添加行为,但并不完全替换父类的方法。(默认情况下,子类构造器会调用父类的无参构造方法)

(8)final 关键字:当不希望一个类被继承是则在class前加上关键字final。final关键字可以出现在返回值类型之前的任意位置,习惯上是放在访问修饰符之后。

          ①final类:一个类可以声明为最终类的 。 最终类不能被继承。

          ②final方法:一个方法可以声明为最终的 。 最终方法不能被重写。

      补充:父类的构造方法不能被继承,可用super( , , )来调用构造器,用super调用父类方法。

    (9)abstract关键字:使用关键字abstract可以声明一个抽象类,该关键字可以出现在类声明时class关键字前的任何地方。当类没有实例化必要时,可将该类改为抽象类。

(10)抽象方法:①没有方法主体;②必须出现在抽象类中;③在子类中必须被重写,除非子类也是抽象类。

2.封装:

    (1)封装是使类中的成员变量都是private,并提供public方法访问这些成员变量的技术,封装也被称为数据隐藏。作用:保证数据的安全性。

(2)访问器方法:允许获取成员变量的get方法;

     修改器方法:允许改变成员变量的方法。

     (3)封装的好处:①类的成员变量可以成为只读或是只写的;

            ②类可以对储存在其成员变量中的内容有一个整体的控制;

            ③类的用户不需要知道类是如何存储数据。

    eg:

1 public class Students{
2     private String name;
3     public void setName(String name){
4        this.name = name;
5    }
6    public String getName(){
7        return name;
8    }
9 }

3.多态( polymorphism ):

    (1)是指一个对象有多种形式的能力,一个类的子类可以定义他们唯一的行为,同时共享父类的某些相同的特征。

       静态多态:①在程序编译时发生;

           ②实现方式: 方法重载;

           ③规则:依据对象在定义时的类型相应的调用对应类中的重载方法;

      动态多态:①在运行时发生;

            ②实现方式: 重写父类的同名成员的方法

            ③调用规则:依据对象在实例化时的类型,相应的调用对应类中的同名成员的方法。

    (2)多态的技术基础:①向上转型技术:一个父类的引用变量可以指向不的子类对象;

              ②instanceof关键字:用于判断运行时对象的真正类型(Java语言的多态机制导致了引用变量的声明类型和实际引用对象的类型可能不一致,因此                           引用instanceof运算符);

              ③动态绑定技术:运行时根据父类引用变量所指对象的实际类型执行相应的子类方法。

              向上转型:由低精度类型转为高精度类型实行自动转换;

              向下转型:由高精度类型转为低精度类型需使用强制类型转换符。

4.接口—特殊的抽象类(interface):

    (1) ①接口中全都是抽象方法,不能被实例化;

      ②类不能继承接口,只能“实现”接口所定义的方法;

    (2)接口与类

        相似之处:

            ①接口可以有任意数量的方法;

            ②接口保存以“ .Java ”为后缀名的文件,接口名需要与文件名匹配;

            ③接口编译后是后缀名为“ .class ”的字节码文件;

            ④在包中的接口,其相应的字节码文件必须放置在和包名称相匹配的一个目录结构中。

        不同之处:

            ①接口不能被实例化;

            ②接口不包含任何构造器;

            ③接口中所有的方法都是抽象的;

            ④接口中不能包含实例成员变量,唯一可以出现在接口中的成员变量必须是同时声明为static和final,即公有静态常量;

            ⑤接口不能被一个类继承,只能被一个类实现;

            ⑥一个接口能够继承多个接口。

    (3)接口具有以下性质:

            ①接口默认是抽象的;

            ②接口的中每一个方法默认也是抽象的;

            ③接口中的方法默认访问级为public。

    (4)接口使用原则:

            ①使用接口解决多继承;

            ②使用接口为外部类添加功能;

            ③以面向对象的角度考虑,量一个类与生俱来的特征和行为和依赖于外部的可选特征和行为分离。

    (5)类实现接口有2个选择:

            ①实现接口中所定义的所有方法;

            ②声明自己为抽象类。

     使用关键字implements类实现接口,该关键字放在类声明的extends部分之后

     eg:

      public class 类名 extends 父类名 implements 接口名
     一个类可以实现多个接口,接口之间用逗号分隔。

     implements 与 is a 都是继承关系。

    (5)使用接口的好处:

          ①将设计和实现分离,对外隐藏了实现;

          ②面向接口编程是OOP的核心。

时间: 2024-08-27 12:46:45

关于继承、封装、多态、抽象和接口的相关文章

JavaScript基础--面向对象三大特性(八):继承封装多态

一.构造函数基本用法:function 类名(参数列表){属性=参数值} 1 function Person(name,age){ 2 this.name = name; 3 this.age = age; 4 } 5 6 //创建Person对象的时候,可以直接给名字和年龄 7 var p1 = new Person('abc',80); 8 window.alert(p1.name); 9 var p2 = new Person('hello',9); 10 window.alert(p2.

第10章 接口、继承与多态 抽象类和接口

一.抽象类 在解决实际问题时,一般将父类定义为抽象类,需要使用这个父类进行继承与多态处理.回想继承和多态原理,继承树中越是在上方的类越抽象,如:鸽子类继承鸟类.鸟类继承动物类等.在多态机制中,并不需要将父类初始化对象,我们需要的只是子类对象,所以在Java语言中设置抽象类不可以实例化对象,因为图形类不能抽象出任何一种具体图像,但它的子类却可以. 抽象类的语法如下:使用abstract关键字定义的类称为抽象类,而使用这个关键字定义的方法称为抽象方法,抽象方法没有方法体,这个方法本身没有任何意义,除

面向对象的三大特征:继承 封装 多态

面向对象: 面向对象专注于由谁来解决这个过程,而调用者无需关注对象实现的细节 编程特点: 出现了一个个的类,从类中拿到对象,通过对象直接解决问题 类:具有一系列相同属性(特征)和方法(行为)的个体的集合 称为类 类是一个抽象的概念,只能说类具有哪些属性而不能直接对类进行赋值 例如 人类有身高这个属性,但是不能说人类的身高是180 对象:从类中拿出具有具体属性值的个体,称为对象 对象是从类中拿出的一个具体的个体,需要对属性进行具体的赋值 例如 人类有身高这个属性,张三是人类的一个个体,就可以说张三

多继承,封装,多态,super()方法,类的约束

多继承: 多继承就是一个类里有多个父类,父类也可以有多个爷爷类.从多个父类中继承属性跟方法. 类的分类: python2.2之前,只有经典类,pythont2.2之后出现了新式类 经典类:不继承object类,多继承遵循深度优先,从左至右,一条路走到底 class A:pass 新式类:继承object类,多继承遵循c3算法,mro方法. class A(object):pass python3x版本只有新式类. 鸭子类型:两个结构类似,有弱关联关系的函数或者类. mro方法:(面试会考) 计算

继承 封装 多态 简单介绍

面向对象的程序设计有三个主要特征,如: 封装性 ? 继承性 ? 多态性 封装: 不需要让外界知道的信息隐藏起来有些对象的属性及行为允许外界用户知道或使用,但不允许更改,而另一些属性或行为,则不允许外界知晓:或只允许使用对象的功能,而尽可能隐蔽对象的功能实现细节. 继承: 首先拥有反映事物一般特性的类,然后在其基础上派生出反映特殊事物的类 多态: 多态是允许程序中出现重名现象. Java 语言中含有方法重载与成员覆盖两种形式的多态. 方法重载:在一个类中,允许多个方法使用同一个名字,但方法的参数不

Java初学——面向对象的封装,继承,多态

一.封装 1.为什要封装 封装的概念:将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问.把尽可能多的东西藏起来,对外提供便捷的接口. 封装的好处:便于使用者正确使用系统,防止错误修改属性 有助于系统之间的松耦合,提高系统独立性 提高软件的可重用性 降低了构建大型系统的风险. 封装的流程: : 2.如何使用封装 在myexclipse中在已经建好的类中,按住快捷键Shift+Alt+S选择R 在弹出面板中选择要封装的成员变量.具体流程如图: 快

七:Java之封装、抽象、多态和继承

本文章介绍了关于Java中的面向对象封装.抽象.继承.多态特点 Java面向对象主要有四大特性:封装.抽象.继承和多态. 一.封装 封装就是将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成"类",其中数据和函数都是类的成员. 在面向对象语言中,封装特性是由类来体现的,我们将现实生活中的一类实体定义成类,其中包括属性和行为(在Java中就是方法),就好像人类,可以具有name,sex,age等属性,同时也具有eat(),sle

继承、多态、封装、接口

继承部分 继承(加上封装和多态性)是面向对象的编程的三个主要特性(也称为"支柱")之一. 继承用于创建可重用.扩展和修改在其他类中定义的行为的新类. 其成员被继承的类称为"基类",继承这些成员的类称为"派生类". 派生类只能有一个直接基类. 但是,继承是可传递的. 如果 ClassB 派生出 ClassC,ClassA 派生出 ClassB,则 ClassC 会继承 ClassB 和 ClassA 中声明的成员. 定义一个类从其他类派生时,派生类

类的相关知识(封装、继承、多态、方法、构造方法、接口、抽象类、静态方法、静态变量等)

类 通过抽象,得到的某一个事物的共同特征. 1.类是抽象的,概念的,代表一类事物,比如人类,猫类-- 2.对象是具体的,实际的,代表一个具体事物 3.类是对象的模板,对象是类的一个个体,实例 class Cat           // Java中类名的首字母大写 { //下面的就是类的成员变量.属性 Int age; String name; String color; } 类的结构: Package 包名: Class 类名 extends 父类 implements 接口名 { 成员变量(

面向对象的三个特征:封装(抽象)、继承、多态

面向对象的三个特征:封装(抽象).继承.多态. 继承:一种代码重用的方式. 1.父类(基类,超类) 2.子类 1).子类在同一个包下面能够范文父类除了私有private修饰的所有属性和方法 2).在不同包下面,子类对象只能访问public修饰的属性和方法 3).在子类内部,如果不同包的情况下,可以访问protected修饰的属性和方法,但是不能访问默认的访问修饰符修饰的属性和方法 4).子类在初始化的时候会先调用父类的默认不带参数构造器,如果没有,就会报错,我们只有人为的修改: 1.将父类添加一