面向对象(子父类中函数的特点-覆盖)

/*

2,子父类中的函数。

当子类出现和父类一模一样的函数时,//不同名的函数,父类中的非私有函数子类乐意直接拿来用。

当子类对象调用该函数,会运行子类函数的内容。

如同父类的函数被覆盖一样。

这种情况是函数的另一个特性:重写(覆盖)   //前面讲了一个函数的特性,重载//其实父类中的方法还在内存当中,只是没有运行而已。

当子类继承父类,沿袭了父类的功能,到子类中,  //覆写的好处可以用于扩展。

但是子类虽具备该功能,但是功能的内容却和父类不一致,

这时,没有必要定义新功能,而是使用覆盖特殊,保留父类的功能定义,并重写功能内容。

覆盖:

1,子类覆盖父类,必须保证子类权限大于等于父类权限,才可以覆盖,否则编译失败。

2,静态只能覆盖静态。//一般没人这么用,记住这个原则就行。

记住大家:

重载:只看同名函数的参数列表。

重写:子父类方法要一模一样。//包括返回值类型。特殊情况,多态中,父类返回类型和子类返回类型是可以不同的。

*/

class Fu

{

void show()

{

System.out.println("fu show");

}

void speak()

{

System.out.println("vb");

}

}

class Zi extends Fu

{

void speak()

{

System.out.println("java");

}

void show()

{

System.out.println("zi show");

}

}

class ExtendsDemo3

{

public static void main(String[] args)

{

Zi z = new Zi();

z.speak();

}

}

class Tel

{

void show()

{

System.out.println("number");//老手机只能显示号码

}

}

class NewTel extends Tel

{

void show()

{

//System.out.println("number");

super.show();

System.out.println("name");

System.out.println("pic");

}

}

时间: 2024-10-16 01:18:32

面向对象(子父类中函数的特点-覆盖)的相关文章

面向对象(子父类中变量、函数、构造函数的特点)

/** * Created by 刘朋程 博客园 on 2014-07-15. */ class fu {     int num = 4 ;               //定义父类的变量num = 4     fu()                        //定义父类的构造函数     {         System.out.println("fu run");     }     void speak()                //定义父类的方法     {

Java 继承之子父类中的成员变量和函数

成员变量: 先看这样一段代码: //父类. class Fu { int num = 3; } class Zi extends Fu { int num = 4; void show() { System.out.println("num = "+this.num); } } class ExtendsDemo { public static void main(String[] args) { Zi z = new Zi(); z.show(); } } 从一张图来看它的原理: 图

2016.7.11子父类中方法的覆盖要点

子类new出来的对象,可以调用父类中的方法(private修饰的除外),但当子类中出现父类方法名以及参数一样的方法时,子类中的方法就是重载,覆盖父类中的相同的方法. 注意的方面: 1.子类中的方法与父类中的方法在“有无返回”.“有无参数”都应该一样的.不一样无法覆盖,但是子类中的方法还是可以被调用的,因为它就是区别于父类中的方法了. 2子类中权限修饰符的等级一定要大于或者等于父类中的,不然也是无法覆盖的哦.(public>defualt默认的>private) 3.静态的方法只能覆盖静态的方法

面向对象(子父类中构造函数的特点-子类实例化过程)

/* 3,子父类中的构造函数. 在对子类对象进行初始化时,父类的构造函数也会运行, 那是因为子类的构造函数默认第一行有一条隐式的语句 super(); super():会访问父类中空参数的构造函数.而且子类中所有的构造函数默认第一行都是super(); 为什么子类一定要访问父类中的构造函数. 因为父类中的数据子类可以直接获取.所以子类对象在建立时,需要先查看父类是如何对这些数据进行初始化的.//指在在父类构造函数初始化 所以子类在对象初始化时,要先访问一下父类中的构造函数. 如果要访问父类中指定

子父类中的构造函数

继承: 特点: 1,提高了代码的复用性. 2,让类与类之间产生关系,是多态性的前提. Java中的继承. 1,java只支持单继承,不支持多继承.为啥呢?答案:因为继承了多个父类如果有相同方法时, 子类对象不确定运行哪一个. 2,Java还支持多层继承.A-->B--->C 原来可以形成继承体系. 想要使用体系功能,"查阅父类功能,建立子类对象调用功能." 注解:父类的由来其实是由事物中的共性内容不断向上抽取而来的. 所以父类中定义的是该体系中的最基本,最共性功能. 继承出

面向对象(子父类中变量的特点)

/* 子父类出现后,类成员的特点: 类中成员: 1,变量. 2,函数. 3,构造函数. //如果子类中出现父类中非私有的非同名成员变量时,可以直接使用. 1,变量 如果子类中出现非私有的同名成员变量时, 子类要访问本类中的变量,用this            //不写也行,省略了this.//this是本类对象的引用,super是父类对象的引用. 子类要访问父类中的同名变量,用super. super的使用和this的使用几乎一致. this代表的是本类对象的引用. super代表的是父类对象

java学习之继承之子父类中变量的特点

子父类出现后,类成员的特点: 明确一个类中的成员组成:1.变量 2.函数 3.构造函数 首先,看1.变量: 如果子类中出现非私有的同名成员变量时, 子类要访问本类中的变量,用this 子类要访问父类中的同名变量,用super super的使用和this的使用几乎一致 this代表的是本类对象的引用 super代表的是父类对象的引用 其次,看2.函数: 当子类出现和父类一模一样的函数时,当子类对象调用该函数,会运行子类函数的内容,如同父类的函数被覆盖一样. 这种情况是函数的另一个特性重写(覆盖)

java基础-子父类中的成员变量

/*子父类成员特点 成员: 1.成员变量 2.函数 3.构造函数 变量: this: 代表当前对象的引用 this.变量 首先在本类中找所需要的这个变量,如果没有找到,再去父类中找 super:用于访问当前对象的父类成员 super.变量 直接在父类中找所需变量 */ class Pers{ String name="张三"; } class Stud extends Pers{ String name="李四"; void view(){ System.out.p

面向对象:父类子类 函数重载与复写

using System; using System.Collections.Generic; using System.Text; namespace ConsoleApplication3 { class shengwu { public void shengming() { Console.WriteLine("生物都有生命"); } public virtual void huxi() { Console.WriteLine("生物都呼吸!"); } } }