1. package extend;
  2. /*面向对象-继承:
  3. * 多个类的共同成员变量和成员方法。抽取到另一个类中(父类),我们多个类就可以访问到父类的成员了
  4. * */
  5. class Game{
  6. String name;
  7. double vesion;//版本号
  8. String agent;//代理商
  9. public void start() {
  10. System.out.println("游戏启动");
  11. }
  12. public void stop() {
  13. System.out.println("游戏关闭");
  14. }
  15. }
  16. class CF extends Game{
  17.  
  18. }
  19. class LOL extends Game {
  20.  
  21. }
  22. public class extend {
  23. public static void main(String[] args) {
  24. CF cf=new CF();
  25. cf.start();
  26. LOL lol=new LOL();
  27. lol.start();
  28. }
  29. }

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

  1. package extend;
  2.  
  3. class update{
  4. public void update() {
  5. System.out.println("更新了");
  6. }
  7. }
  8. class QQspeedandchuangqi extends update{
  9. public void start() {
  10. System.out.println("game start.....");
  11. }
  12. public void stop() {
  13. System.out.println("game stop.....");
  14. }
  15. }
  16. class QQspeed extends QQspeedandchuangqi{
  17.  
  18. }
  19. class Chaungqi extends QQspeedandchuangqi{
  20.  
  21. }
  22.  
  23. public class extends_java_special {
  24. public static void main(String[] args) {
  25. QQspeed qqspeed=new QQspeed();
  26. Chaungqi chaungqi=new Chaungqi();
  27. qqspeed.update();
  28. qqspeed.start();
  29. qqspeed.stop();
  30. }
  31. }在以上代码中我们可以发现,java中的继承,不能实现一对多个父类,而可以多层次的继承。

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

  1. package extend;
  2. class parents{
  3. private String name="我是parents的成员变量";
  4. }
  5. class Father extends parents{
  6. public void speak() {
  7. System.out.println("我叫"+name);
  8. }
  9. }
  10. public class extends_member {
  11. public static void main(String[] args) {
  12. Father father=new Father();
  13. father.speak();
  14. }
  15. }
  16. /*在上述代码中 子类(Father类)继承了parents(父类),父类中有私有变量name,但是子类访问不了父类的私有变量,所以那么会报错*/
  1. package extend;
  2. class parents{
  3. String name="我是parents的成员变量";
  4. }
  5. class Father extends parents{
  6. String name="我是Father的成员变量";
  7. public void speak() {
  8. System.out.println("我叫"+name);
  9. }
  10. }
  11. public class extends_member {
  12. public static void main(String[] args) {
  13. Father father=new Father();
  14. father.speak();
  15. }
  16. }
  17. /*在上述代码中 子类(Father类)继承了parents(父类),父类中有成员变量name,但是子类也有成员变量name,
  18. * 此时的打印输出为:我叫我是Father的成员变量
  19. * 所以在同一个名称的成员变量下,对象访问的应该是子类的成员变量
  20. */
  1. package extend;
  2. class parents{
  3.  
  4. }
  5. class Father extends parents{
  6. String name="我是Father的成员变量";
  7. public void speak() {
  8. String name="我是Father的局部变量";
  9. System.out.println(name);
  10. }
  11. }
  12. public class extends_member {
  13. public static void main(String[] args) {
  14. Father father=new Father();
  15. father.speak();
  16. }
  17. }
  18. /*在上述代码中 子类(Father类)继承了parents(父类),父类中有成员变量name1,但是子类也有成员变量name2,
  19. * 此时的打印输出为:我叫我是Father的局部变量
  20. * 所以在有局部变量的时候就用局部变量,遵循就近原则
  21. */
  22.  
  23. 总结下继承中的成员变量,局部变量的特点:
  1. 1.子类(Father类)继承了parents(父类),父类中有私有变量name,但是子类访问不了父类的私有变量。2.子父类中有相同名称成员变量,则依照就近原则,用子类的成员变量3.子父类中有不通的名称成员变量,则使用父类中的成员变量4.如果有局部变量就是用局部变量super:可以访问父类的成员this:引用当前对象

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

  1. 子类没有方法:package extend;
  2. class parents{
  3. public void speak() {
  4. System.out.println("父母");
  5. }
  6. }
  7. class Father extends parents{
  8. }
  9. public class extends_member {
  10. public static void main(String[] args) {
  11. Father father=new Father();
  12. father.speak();
  13. }
  14. }
  15. 子类有同名方法
  16. package extend;
  17. class parents{
  18. public void speak() {
  19. System.out.println("父母");
  20. }
  21. }
  22. class Father extends parents{
  23. public void speak() {
  24. System.out.println("爸爸");
  25. }
  26. }
  27. public class extends_member {
  28. public static void main(String[] args) {
  29. Father father=new Father();
  30. father.speak();
  31. }
  32. }
  33.  
  34. /*如果子类中有这个方法,那么会进行方法的重写,覆盖父类方法,因为父类的方法不一定子类都具备。
  35. 如果子类没有方法,那么就会使用父类的方法。*/

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. springboot整合JPA创建数据库表失败

    org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL "create table t_s ...

  2. 10046 trace详解(2)--tkprof

      10046或10053生成的文件格式比较乱,直接查看有一定的困难,ORACLE自带的一个格式化命令工具tkprof可以将生成的.trc文件进行格式化,具体用说如下: 一.直接输入tkprof不带任 ...

  3. 深入理解JVM4——线程安全

    浅谈java内存模型 不同的平台,内存模型是不一样的,但是jvm的内存模型规范是统一的.其实java的多线程并发问题最终都会反映在java的内存模型上,所谓线程安全无非是要控制多个线程对某个资源的有序 ...

  4. H3C交换机配置镜像端口

    配置步骤 进入配置模式:system-view: 创建本地镜像组:mirroring-group 1 local 为镜像组配置源端口:mirroring-group 1 mirroring-port ...

  5. HTTP响应代码集合

    用于表示临时响应并需要请求者执行操作才能继续的状态代码.代码说明100(继续)请求者应当继续提出请求.服务器返回此代码则意味着,服务器已收到了请求的第一部分,现正在等待接收其余部分. 101(切换协议 ...

  6. quartz(5)--作业管理和存储

    作业一旦被调度,调度器需要记住并且跟踪作业和它们的执行次数.如果你的作业是30分钟后或每30秒调用,这不是很有用.事实上,作业执行需要非常准确和即时调用在被调度作业上的execute()方法.Quar ...

  7. Android中获取并设置屏幕亮度

    最近在做一个Demo的时候用到了调节屏幕亮度的功能,于是上网搜索了一下,并且写了一个小Demo测试了一下,发现代码还是比较简单的.Android中的亮度调节,主要有三个方向,一个是针对于系统的亮度调节 ...

  8. 修改Tomcat默认端口号,避免与IDEA冲突

    修改Tomcat默认端口号,避免与IDEA冲突 APT安装默认位置如下 /var/lib/tomcat8/conf 修改server.xml中的8080端口为8088或其他. 重启服务,试试看效果. ...

  9. qtjambi_ZC

    loadJambiJniLibrary --> loadLibrary --> loadNativeLibrary --> loadLibrary_helper class QApp ...

  10. SQLite 插入大量数据慢的解决方法

    sqlite 插入数据很慢的原因:sqlite在没有显式使用事务的时候会为每条insert都使用事务操作,而sqlite数据库是以文件的形式存在磁盘中,就相当于每次访问时都要打开一次文件,如果对数据进 ...