day07 继承 覆盖

继承:

//java语言中,java中只支持单继承,不支持多继承(c++支持多继承)
//因为多继承容易带来安全隐患:当多个父类中定义了相同功能,当功能内容不同时
//子类对象不确定要运行哪一个、
//但是Java保留了这种体制(多继承)。并用另外一种体现形式来完成。多实现。
// java支持多层继承、 也就是一个集成体系
/*
如何使用一个集成体系中的功能呢?
想要使用体系,先查阅体系父类的描述,因为父类中定义的是该体系中共性功能。
通过了解共性功能,就可以知道该体系的基本功能。
那么这个体系已经可以基本使用了。
那么在具体调用时,要创建最子类的对象,为什么呢?
一是因为有可能父类不能创建对象。
二是创建自雷对象可以使用更多的功能,包括基本的也包括特有的。

简单一句话:查阅父类功能,创建子类对象使用功能。

class A
{
    void show()
    {
        System.out.println("a");
    }
}
class B
{
    void show()
    {
        System.out.println("b");
    }
}

class c extends A,B
{
}
C c = new C();
c.show();

*/

class Person
{
    String name;
    int age;
}
class Student extends Person
{
    void study()
    {
        System.out.println("good study");
    }
}
class Worker extends Person
{
    void work()
    {
        System.out.println("good work");
    }
}

class exde
{
    public static void main(String[] args)
    {
        Student p = new Student();
        p.name = "zhangsan";
        System.out.println(p.name);
    }
}

多继承劣势

/*
子父类出现后,类成员的特点:

变量:
如果子类中出现非私有的同名成员变量时,
子类要访问本类中的变量,用this
子类要访问父类中的同名变量,用super,。

super的使用和this的使用一致。
this代表的是本类对象的引用。
super代表的是父类对象的引用。

子父类中的函数:
如果子类中出现和父类一模一样的函数时,
子类对象调用该函数,会运行子类函数的内容、
如同父类的函数被覆盖一样

这种情况是函数的另一个特性:重写(覆盖)

当子类继承父类,沿袭了父类的功能,到子类中,
但是子类虽具备该功能,但是功能的内容却和父类不一致。
这时,没有必要定义新功能,而是使用覆盖特点,保留父类的功能定义并重写功能代码
*/

class fu
{
    void show()
    {
    System.out.println("wang");
    }
}

class zi extends fu
{
    void show()
    {
    System.out.println("wdk");
        System.out.println("dk");

    }
}

class exde
{
    public static void main(String[] args)
    {
        zi p = new zi();
        p.show();
    }
}

重载

重载:只看同名函数的参数列表
重写:子父类方法要一模一样

时间: 2024-10-10 16:57:37

day07 继承 覆盖的相关文章

java继承覆盖总结

java的继承与覆盖基本是java笔试中常出的题,也比较绕,我这里对java的继承覆盖做一个总结1.构造函数:        当子类继承一个父类时,构造子类时需要调用父类的构造函数,存在三种情况        (1),父类无构造函数或者一个无参数构造函数,子类若无构造函数或者有无参数构造函数,子类构造函数中不需要显式调用父类的构造函数,系统会自动在调用子类构造函数前调用父类的构造函数         (2),父类只有有参数构造函数,子类在构造方法中必须要显式调用父类的构造函数,否则编译出错   

C++学习_继承覆盖重载

今天通过对实验二继承,重载,覆盖的学习,让我更深一步理解了这些概念的区别. 首先来明确一个概念,函数名即地址,也就是说函数名就是个指针. 编译阶段,编译器为每个函数的代码分配一个地址空间并编译函数代码到这个空间中,函数名就指向这个地址空间. 也即每个函数名都有自己唯一的代码空间. 同理,类的成员函数也是如此. 但是,有一点大家一定要记住,C++编译器编译CPP文件时,会根据"C++编译器的函数名修饰规则" 对函数名进行修饰.(修饰规则大家自己去搜吧,我就不叙述了),前面讲到函数名称的作

继承覆盖问题

<?phpclass A{ private $n1; private $n2; private $n3; public __set($p_name,$p_v){ $this->p_name=$p_v; } pubilc __get($p_name){ if(isset($p_name)){ return $this->p_name }else{ return null; }} } $a1=new A();$a1->$n1="hhh";echo $a1->n

2015/9/22 Python基础(18):组合、派生和继承

一个类被定义后,目标就是把它当成一个模块来使用,并把这些对象嵌入到你的代码中去,同其他数据类型及逻辑执行流混合使用.有两种方法可以在你的代码中利用类.第一种是组合,就是让不同的类混合并加入到其他类中,来增强功能和代码重用性.你可以在一个大点的类中创建你自己的类的实例,实现一些其他属性和方法来增强原来的类对象.另一种是派生,通过子类从基类继承核心属性,不断地派生扩展功能实现. 组合举例来说,我们想对之前做过的地址本类作加强性设计.如果在设计的过程中,为names.addresses等创建了单独的类

Javascript之对象组合继承

感悟: 最近看了一些关于Javascript对象继承的知识,发现自己之前虽然看了一些书,但是很多知识都忘了.虽然很多东西都忘了,但再次看的过程中对这些东西不会再向刚接触时那么陌生,而且理解起来也比之前顺畅和透彻多了. 充分说明:多看书是有意义的. ————————————————————————————————————————————————————————————————————————————————————————————碎碎念 关于对象之间的继承,在Javascript中主要是通过原型对

python-子类和派生、继承

新式类和经典类得区别: ################################################### class ClassicClass(): pass class NewStyleClass(object): pass x1 = ClassicClass()x2 = NewStyleClass() print x1.__class__, type(x1)print x2.__class__, type(x2) 输出结果: __main__.ClassicClass

YII2框架详解

yii2框架的安装我们在之前文章中已经提到下面我们开始了解YII2框架 Yii2的应用结构: 目录篇: advance版本的特点是:根目录下预先分配了三个模块,分别是前台.后台.控制台模块. 1.backend 它主要用于管理后台,网站管理员来管理整个系统. assets 目录用于存放前端资源包PHP类. 这里不需要了解什么是前端资源包,只要大致知道是用于管理CSS.js等前端资源就可以了. config 用于存放本应用的配置文件,包含主配置文件 main.php 和全局参数配置文件 param

《Python核心编程(第二版)》pdf

下载地址:网盘下载 内容简介  · · · · · · 本书是Python开发者的完全指南--针对 python 2.5全面升级 ·学习专业的Python风格.最佳实践和好的编程习惯: ·加强对Python对象.内存模型和Python面向对象特性的深入理解: ·构建更有效的Web.CGI.互联网.网络和其他客户端/服务器架构应用程序及软件: ·学习如何使用Python中的Tkinter和其他工具来开发自己的GUI应用程序及软件: ·通过用C等语言编写扩展来提升Python应用程序的性能,或者通过

第八篇:面向对象编程

OOP介绍 一.什么是OOP 1.编程的发展已经从简单控制流中按步的指令序列进入到更有组织的方式中 2.结构化的或过程性编程可以让我们把程序组织成逻辑块,以便重复或重用 3.面向对象编增强了结构化编程,实现了数据与动作的融合 4.数据层和逻辑层由一个可用以创建这些对象的简单抽象层来描述 二.常用术语 1.抽象/实现:抽象指对现实世界问题和实体的本质表现,行为和特征建模,建立一个相关的子集,可以用于描绘程序结构,从而实现这种模型 2.封装/接口:封装描述了对数据/信息进行隐藏的观念,它对数据属性提