package extend;
/*面向对象-继承:
 *         多个类的共同成员变量和成员方法。抽取到另一个类中(父类),我们多个类就可以访问到父类的成员了
 * */
class Game{
    String name;
    double vesion;//版本号
    String agent;//代理商
    public void start() {
        System.out.println("游戏启动");
    }
    public void stop() {
        System.out.println("游戏关闭");
    }
}
class CF extends Game{

}
class LOL extends Game {

}
public class extend {
    public static void main(String[] args) {
        CF cf=new CF();
        cf.start();
        LOL lol=new LOL();
        lol.start();
    }
}

初步的认识后,现在来看下继承在java中的特点

package extend;

class update{
    public void update() {
        System.out.println("更新了");
    }
}
class QQspeedandchuangqi extends update{
    public void start() {
        System.out.println("game start.....");
    }
    public void stop() {
        System.out.println("game stop.....");
    }
}
class QQspeed extends QQspeedandchuangqi{

}
class Chaungqi extends QQspeedandchuangqi{

}

public class extends_java_special {
    public static void main(String[] args) {
        QQspeed qqspeed=new QQspeed();
        Chaungqi chaungqi=new Chaungqi();
        qqspeed.update();
        qqspeed.start();
        qqspeed.stop();
    }
}在以上代码中我们可以发现,java中的继承,不能实现一对多个父类,而可以多层次的继承。

继承中的成员变量,局部变量的特点:

package extend;
class parents{
    private String name="我是parents的成员变量";
}
class Father extends parents{
    public void speak() {
        System.out.println("我叫"+name);
    }
}
public class extends_member {
    public static void main(String[] args) {
        Father father=new Father();
        father.speak();
    }
}
/*在上述代码中  子类(Father类)继承了parents(父类),父类中有私有变量name,但是子类访问不了父类的私有变量,所以那么会报错*/
package extend;
class parents{
    String name="我是parents的成员变量";
}
class Father extends parents{
    String name="我是Father的成员变量";
    public void speak() {
        System.out.println("我叫"+name);
    }
}
public class extends_member {
    public static void main(String[] args) {
        Father father=new Father();
        father.speak();
    }
}
/*在上述代码中  子类(Father类)继承了parents(父类),父类中有成员变量name,但是子类也有成员变量name,
 * 此时的打印输出为:我叫我是Father的成员变量
 * 所以在同一个名称的成员变量下,对象访问的应该是子类的成员变量
 */
package extend;
class parents{

}
class Father extends parents{
    String name="我是Father的成员变量";
    public void speak() {
        String name="我是Father的局部变量";
        System.out.println(name);
    }
}
public class extends_member {
    public static void main(String[] args) {
        Father father=new Father();
        father.speak();
    }
}
/*在上述代码中  子类(Father类)继承了parents(父类),父类中有成员变量name1,但是子类也有成员变量name2,
 * 此时的打印输出为:我叫我是Father的局部变量
 * 所以在有局部变量的时候就用局部变量,遵循就近原则
 */

总结下继承中的成员变量,局部变量的特点:
1.子类(Father类)继承了parents(父类),父类中有私有变量name,但是子类访问不了父类的私有变量。2.子父类中有相同名称成员变量,则依照就近原则,用子类的成员变量3.子父类中有不通的名称成员变量,则使用父类中的成员变量4.如果有局部变量就是用局部变量super:可以访问父类的成员this:引用当前对象

接下来是继承中的成员方法特点:

子类没有方法:package extend;
class parents{
    public void speak() {
        System.out.println("父母");
    }
}
class Father extends parents{
}
public class extends_member {
    public static void main(String[] args) {
        Father father=new Father();
        father.speak();
    }
}
子类有同名方法
package extend;
class parents{
    public void speak() {
        System.out.println("父母");
    }
}
class Father extends parents{
    public void speak() {
        System.out.println("爸爸");
    }
}
public class extends_member {
    public static void main(String[] args) {
        Father father=new Father();
        father.speak();
    }
}

/*如果子类中有这个方法,那么会进行方法的重写,覆盖父类方法,因为父类的方法不一定子类都具备。
如果子类没有方法,那么就会使用父类的方法。*/

Java基础学习-extends继承(成员变量,局部变量,成员方法)的更多相关文章

  1. Java面向对象学习-----类的成员变量

    类的成员变量: 猜数字游戏:一个类A有一个成员变量v,通过随机产生一个100内的整数给v赋值.定义一个方法,对A类的成员变量v进行猜.   没有猜对的情况下提示如果大了则提示大了,小了则提示小了,并且 ...

  2. Java基础学习篇---------继承

    一.覆写(重写) 1.含义:子类的定义方法.属性和父类的定义方法.属性相同时候 方法名称相同,参数相同以及参数的个数也相同,此时为覆写(重写) 扩充知识点: 覆盖:只有属性名字和方法名字相同,类型.个 ...

  3. Java面向对象学习-----类的成员变量2

    请定义一个交通工具(Vehicle)的类,其中有: 属性:速度(speed),体积(size)等等 方法:移动(move()),设置速度(setSpeed(int speed)),加速speedUp( ...

  4. java基础学习总结三(jdk7新特性、变量(局部变量和成员变量)、常量以及运算符)

    一:jdk7新特性 可以表示二进制数值,以0b开头,中间可以使用下划线_分隔符.如下: @Test /** * 测试jdk新特性 */ public void testJdk7(){ int a=0b ...

  5. Java学习日记基础篇(四)——类,对象之成员变量,成员方法,构造方法

    面向对象(Object Oriented) 一.面向对象杂谈 面向对象(Object Oriented),我的翻译是以物体为目标的,就是说编程的时候是建立一个物体,然后对这个物体进行操作. Java语 ...

  6. Java基础学习-- 继承 的简单总结

    代码参考:Java基础学习小记--多态 为什么要引入继承? 还是做一个媒体库,里面可以放CD,可以放DVD.如果把CD和DVD做成两个没有联系的类的话,那么在管理这个媒体库的时候,要单独做一个添加CD ...

  7. Java学习笔记10---访问权限修饰符如何控制成员变量、成员方法及类的访问范围

    1.Java有三种访问权限修饰符,分别为public.protected.private,还有一种为缺省权限修饰符的情况,记为default.其中,可以由public和default来修饰类:这四种修 ...

  8. 继承的基本概念: (1)Java不支持多继承,也就是说子类至多只能有一个父类。 (2)子类继承了其父类中不是私有的成员变量和成员方法,作为自己的成员变量和方法。 (3)子类中定义的成员变量和父类中定义的成员变量相同时,则父类中的成员变量不能被继承。 (4)子类中定义的成员方法,并且这个方法的名字返回类型,以及参数个数和类型与父类的某个成员方法完全相同,则父类的成员方法不能被继承。 分析以上程

    继承的基本概念: (1)Java不支持多继承,也就是说子类至多只能有一个父类. (2)子类继承了其父类中不是私有的成员变量和成员方法,作为自己的成员变量和方法.(3)子类中定义的成员变量和父类中定义的 ...

  9. java基础学习总结——java环境变量配置(转)

    只为成功找方法,不为失败找借口! 永不放弃,一切皆有可能!!! java基础学习总结——java环境变量配置 前言 学习java的第一步就要搭建java的学习环境,首先是要安装 JDK,JDK安装好之 ...

随机推荐

  1. 【TensorFlow】tf.nn.conv2d是怎样实现卷积的?

    tf.nn.conv2d是TensorFlow里面实现卷积的函数,参考文档对它的介绍并不是很详细,实际上这是搭建卷积神经网络比较核心的一个方法,非常重要 tf.nn.conv2d(input, fil ...

  2. OpenERP学习过程1

    系统为Win7 32位,下载并安装OpenERP: 1. 下载地址http://nightly.odoo.com/7.0/nightly/exe/ 2. 双击开始安装,由于选择的是all-in-one ...

  3. tarball源码安装

    软件最原始的安装方法 用tarball来安装升级make命令执行make ,会在当前路径下搜索makefile这个文本文件,这个文件中记录了源码如何编译的详细信息.软件开发商通常会写一个检测程序,检测 ...

  4. 快速搭建vue脚手架

    https://segmentfault.com/a/1190000011275993

  5. Django框架之单表操作

    一.添加表记录 对于单表有两种方式 # 添加数据的两种方式 # 方式一:实例化对象就是一条表记录 Frank_obj = models.Student(name ="海东",cou ...

  6. 扯一扯 C#委托和事件?策略模式?接口回调?

    早前学习委托的时候,写过一点东西,今天带着新的思考和认知,再记点东西.这篇文章扯到设计模式中的策略模式,观察者模式,还有.NET的特性之一--委托.真的,请相信我,我只是在扯淡...... 场景练习 ...

  7. Mybatis${}、#{}及使用#{}时指定jdbcType

    一.Mybatis 的Mapper.xml语句中parameterType向SQL语句传参有两种方式:#{}和${} 我们经常使用的是#{},一般解说是因为这种方式可以防止SQL注入,简单的说#{}这 ...

  8. H5新特性---新应用

    1.持久化本地存储 可以不通过第三方插件实现数据的本地存储 2.WebSocket 页面之间可以双向通信 3.服务器推送事件(SSE) 从Web服务器将消息推送给浏览器(在手机中常见) 例如: < ...

  9. Mybatis plus 高级

    最近项目重构 dao层使用的Mybatis plus,有必要总结下. Mybatis plus 会自动维护Mybatis 以及 MyBatis-Spring 相关依赖  所以在构建项目时候 只需要引入 ...

  10. 谷歌浏览器和火狐浏览器设置跨域和https、http混用 Chrome

    谷歌浏览器和火狐浏览器设置跨域和https.http混用 Chrome    添加启动项: 右键点击Chrome快捷方式,在目标一栏后添加启动项 允许跨域: --disable-web-securit ...