面向对象入门2--继承

1:代码块是什么?代码块的分类和各自特点?

java中,用{}括起来的代码,就是代码块!
      局部代码块:用来限定变量的生命周期,出现在main方法中
      构造代码块:类中的成员位置,{代码块}用来给对象的数据进行初始化,每次执行构造方法之前,要执行构造代码块
      静态代码块:类中的成员位置,也是用{代码块},在代码的前面,用static代码
      作用:静态是和类有关系的,随着类的加载而加载,给类进行初始化
      在类中:只加载一次!
    
2:静态代码块,构造代码块,构造方法的执行流程?

静态代码块---->构造代码块----->构造方法
     构造代码块:每次在执行构造方法之前,要先走构造代码块
     静态代码:在内存中只加载一次!
 
3:继承概述
     将多个类的共性内容,抽取到一个独立的类中,独立的类和着多个类就产生一种关系:extends:表示继承
       格式:
         class Zi extends Fu{
     
         }


     4:继承的好处

继承的好处:
        A:提高代码复用性
        B:提高代码维护性
        C:让类与类产生了一种关系,它是多态的前提!
 
       让类与类产生的这种关系,也是一种弊端!
            耦合性
    
       java中开发原则:低耦合,高内聚
      
        耦合性:指的是多个类产生的这种关系
        内聚:指的是自己完成某件事情能力
  
5:Java中继承的特点

A: 在java中,只支持单继承,不支持多继承,
            别的语言,可以支持多继承的:class Zi extends Father,Monther{..}
       B:虽然java中不支持多继承,但是可以支持多层继承
 
6:Java中继承的注意事项?以及我们什么时候使用继承?

注意事项:父类所有非私有的成员(成员方法和成员变量)
     其实这也体现了继承的另一个弊端:打破了封装性
     子类不能继承父类的构造方法,但是可以通过super(后面讲)关键字去访问父类构造方法。
     不要为了部分功能而去继承
     什么时候使用:中类之间体现的是:”is a”的关系。

7:继承中的成员访问特点

A:成员变量
          在子类方法中访问一个变量
     B:成员方法
          在测试类中通过子类对象去访问一个方法


8:继承中构造方法的执行流程?假如父类没有无参构造方法,子类应该怎么办?

若父类没有无参构造方法,则:
          子类通过super去显示调用父类其他的带参的构造方法
          子类通过this去调用本类的其他构造方法
          本类其他构造也必须首先访问了父类构造
   一定要注意:
            super(…)或者this(….)必须出现在第一条语句山
           否则,就会有父类数据的多次初始化

时间: 2024-10-25 06:16:13

面向对象入门2--继承的相关文章

JavaScript面向对象之类的继承

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

Lua面向对象----类、继承、多继承、单例的实现

(本文转载)学习之用,侵权立删! 原文地址   http://blog.csdn.net/y_23k_bug/article/details/19965877?utm_source=tuicool&utm_medium=referral lua面向对象实现: 一个类就像是一个创建对象的模具.有些面向对象语言提供了类的概念,在这些语言中每个对象都是某个特定类的实例.lua则没有类的概念,每个对象只能自定义行为和形态.不过,要在lua中模拟类也并不困难. lua中,面向对象是用元表这个机制来实现.

C++ Primer 学习笔记_31_面向对象编程(2)--继承(二):继承与构造函数、派生类到基类的转换 、基类到派生类的转换

C++ Primer 学习笔记_31_面向对象编程(2)--继承(二):继承与构造函数.派生类到基类的转换 .基类到派生类的转换 一.不能自动继承的成员函数 构造函数 拷贝构造函数 析构函数 =运算符 二.继承与构造函数 基类的构造函数不被继承,派生类中需要声明自己的构造函数. 声明构造函数时,只需要对本类中新增成员进行初始化,对继承来的基类成员的初始化调用基类构造函数完成(如果没有给出则默认调用默认构造函数). 派生类的构造函数需要给基类的构造函数传递参数 #include <iostream

C++ Primer学习笔记32_面向对象编程(3)--继承(三):多重继承、虚继承与虚基类

C++ Primer学习笔记32_面向对象编程(3)--继承(三):多重继承.虚继承与虚基类 一.多重继承 在C++语言中,一个派生类可以从一个基类派生,称为单继承:也可以从多个基类派生,称为多继承. 多重继承--一个派生类可以有多个基类 class <派生类名> : <继承方式1> <基类名1>,<继承方式2> <基类名2>,... { <派生类新定义成员> }; 可见,多继承与单继承的区别从定义格式上看,主要是多继承的基类多于一个

JavaScript中OOP——&gt;&gt;&gt;面向对象中的继承/闭包

  前  言  OOP  JavaScript中OOP-->>>面向对象中的继承/闭包 1.1面向对象的概念 使用一个子类继承另一个父类,子类可以自动拥有父类的属性和方法.      >>> 继承的两方,发生在两个类之间. 1.2JS模拟实现继承的三种方式:        首先,了解一下call/apply/binb:通过函数名调用方法,强行将函数中的this指向某个对象:            call写法:  func.call(func的this指向的obj,参数

IOS开发语言Swift入门连载---继承

IOS开发语言Swift入门连载-继承 一个类可以继承(inherit)另一个类的方法(methods),属性(property)和其它特性.当一个类继承其它类时,继承类叫子类(subclass),被继承类叫超类(或父类,superclass).在 Swift 中,继承是区分「类」与其它类型的一个基本特征. 在 Swift 中,类可以调用和访问超类的方法,属性和下标脚本(subscripts),并且可以重写(override)这些方法,属性和下标脚本来优化或修改它们的行为.Swift 会检查你的

Java实例 Part5:面向对象入门

目录 Part5:面向对象入门 Example01:成员变量的初始化值 Example02:单例模式的应用 -----懒汉式 -----饿汉式 Example03:汉诺塔问题的求解 Example04:两只完全相同的宠物并得出对象的哈希码 Part5:面向对象入门 @ *** Example01:成员变量的初始化值 运行结果: 代码实现: public class Example01 { //声明变量 private byte b; private int i; private short s;

03 面向对象之:继承

一:什么是面向对象的继承? 比较官方的说法就是: 继承(英语:inheritance)是面向对象软件技术当中的一个概念.如果一个类别A“继承自”另一个类别B,就把这个A称为“B的子类别”,而把B称为“A的父类别”也可以称“B是A的超类”.继承可以使得子类别具有父类别的各种属性和方法,而不需要再次编写相同的代码.在令子类别继承父类别的同时,可以重新定义某些属性,并重写某些方法,即覆盖父类别的原有属性和方法,使其获得与父类别不同的功能.另外,为子类别追加新的属性和方法也是常见的做法. 一般静态的面向

18.Python面向对象之:继承

一:什么面向对象的继承? 比较官方的说法就是: 继承(英语:inheritance)是面向对象软件技术当中的一个概念. 如果一个类别A“继承自”另一个类别B,就把这个A称为“B的子类别”, 而把B称为“A的父类别”也可以称“B是A的超类”.继承可以使得子类别 具有父类别的各种属性和方法,而不需要再次编写相同的代码.在令子 类别继承父类别的同时,可以重新定义某些属性,并重写某些方法,即覆 盖父类别的原有属性和方法,使其获得与父类别不同的功能.另外,为子类 别追加新的属性和方法也是常见的做法. 一般

JavaScript面向对象轻松入门之继承(demo by ES5、ES6)

继承是面向对象很重要的一个概念,分为接口继承和实现继承,接口继承即为继承某个对象的方法,实现继承即为继承某个对象的属性.JavvaScript通过原型链来实现接口继承.call()或apply()来实现实现继承. 接口继承的实现在ES5中是比较麻烦,在其它OOP语言中一个extends关键字就可以实现,但在ES5中要通过原型链去模拟,非常难理解,对初学者很不友好,并且有好几种接口继承的方式.本文为了对初学者更友好,并不打算让读者了解接口继承的原理,而是直接把接口继承实现方法封装成一个函数,大家只