一:继承条件下的构造方法调用

package test;class Grandparent
{public Grandparent(){System.out.println("GrandParent Created.");}public Grandparent(String string) {System.out.println("GrandParent Created.String:" + string);}}class Parent extends Grandparent
{public Parent(){//super("Hello.Grandparent.");System.out.println("Parent Created");// super("Hello.Grandparent.");
    }
}class Child extends Parent
{public Child(){System.out.println("Child Created");}
}public class TestInherits
{@SuppressWarnings("unused")public static void main(String args[]){Child c = new Child();}
}

通过 super 调用基类构造方法(

通过 super 调用基类构造方法,必须是子类构造方法中的第一个语句。

)后运行截图:

如果super()语句不在第一行,报错:Constructor call must be the first statement in a constructor。

二:方法覆盖

package test;class Pa
{public void display(){System.out.println("Parent Created");}
}class Ch extends Pa
{public void display(){super.display();System.out.println("Child Created");}
}public class Override {public static void main(String[] args) {// TODO Auto-generated method stubCh c = new Ch();c.display();}
}

  

在子类中,若要调用父类中被覆盖的方法,可以使用super关键字。

运行结果:

没有调用父类中被覆盖的方法

运行结果:

三:类型转换

package test;class Mammal{}
class Dog extends Mammal {}
class Cat extends Mammal{}public class TestCast
{public static void main(String args[]){Mammal m;Dog d=new Dog();Cat c=new Cat();m=d;//d=m;d=(Dog)m;//d=c;//c=(Cat)m;
}
}

结果:

结论:

子类对象可以直接赋给基类变量。

基类对象要赋给子类对象变量,必须执行类型转换,

其语法是: 子类对象变量=(子类名)基类对象名;

 四:子类父类拥有同名的方法

package test;public class ParentChildTest {public static void main(String[] args) {Parent parent=new Parent();parent.printValue();Child child=new Child();child.printValue();parent=child;parent.printValue();parent.myValue++;parent.printValue();((Child)parent).myValue++;parent.printValue();}
}class Parent{public int myValue=100;public void printValue() {System.out.println("Parent.printValue(),myValue="+myValue);}
}
class Child extends Parent{public int myValue=200;public void printValue() {System.out.println("Child.printValue(),myValue="+myValue);}
}

运行结果:

结论:

当子类与父类拥有一样的方法,并且让一个父类变量引用一个子类对象时,到底调用哪个方法,由对象自己的“真实”类型所决定,这就是说:对象是子类型的,它就调用子类型的方法,是父类型的,它就调用父类型的方法。

转载于:https://www.cnblogs.com/janeszj/p/9890533.html

Java课程03总结相关推荐

  1. Java大作业-考试管理系统(GUI)无数据库-Java课程设计

    Java课程设计-Java大作业-考试管理系统(GUI)无数据库 题目要求 开发环境 : 程序总功能模块 程序详细设计 使用情况 第一次写这东西有不少错误的地方,题目要求的功能也没有完全实现,以上内容 ...

  2. 尚硅谷2022版Java课程体系,霸气来袭

    摘要:技术为王,课比天大. 尚硅谷当家学科硬核升级, 全新Java课程体系重磅来袭! 见证好课,一睹为快: 01 额外加赠架构师课 加量不加价,扶上马再送一程. 为进一步增强学员市场竞争力, 面授结束 ...

  3. 微普公司JAVA课程体系图

    微普公司JAVA课程体系: 转载于:https://www.cnblogs.com/CharmingDang/archive/2009/03/24/9663711.html

  4. Java学习笔记(笔记来源:B站UP主遇见狂神说的Java课程总结)

    该笔记是我看完B站UP主:遇见狂神说的Java部分课程后总结出来的内容,视频指路--->[[狂神说Java]Java零基础学习视频通俗易懂-哔哩哔哩 目录 Java基础(12节) Java基础0 ...

  5. 某内Java课程(整套视频+课件)

    某内Java课程 需要整套视频文件(视频+课件):(+V: t_shopnet) 1 FUNDAMENTALO1 01: 对象和类(上)(6 am.mp4 01: 对象和类(上) (6 pm.mp4 ...

  6. 如何高效学习java课程

    想要快速进入到java行业,进行系统的培训和有效的学习是非常重要的,那么短时间内如何高效学习java课程呢?来看看下面小编的详细介绍吧. ​ 如何高效学习java课程? 1. 克服自身惰性,学习环境更 ...

  7. JAVA课程设计——“小羊吃蓝莓”小游戏

    JAVA课程设计--"小羊吃蓝莓"小游戏 1. 团队课程设计博客链接 http://www.cnblogs.com/HXY071/p/7061216.html 2. 个人负责模块或 ...

  8. java课程 数独 文库_数独java

    数独游戏的算法研究与实现_IT/计算机_专业资料.数独游戏的算法研究与实现 java lSSN1009-3044 ComputerKnowledgeAnd MnoJ;01∥电奠知识与技术 E-mail ...

  9. python编程书籍1020python编程书籍_代写INFT 1020作业、Database作业代做、Java课程作业代写、c++,Python编程作业代做...

    代写INFT 1020作业.Database作业代做.Java课程作业代写.c++,Python编程作业代做 日期:2020-04-25 10:27 INFT 1020 Database Fundam ...

最新文章

  1. python获取系统时间月份_python 取数组绝对值python获取当前日期
  2. asp.net request详细说明
  3. 罗永浩发文评《你好,李焕英》:一定要看!
  4. Service Mesh简史
  5. 【FPGA教程案例31】通信案例1——基于FPGA的ASK调制信号产生
  6. 下载各种在线视频及字幕
  7. python标准库calendar判断年份是闰年和平年
  8. 一句话讲清种子轮、天使轮、ABC轮的区别
  9. 天猫爬虫--爬取天猫评论中的图片
  10. 程矢Oracle PowerDesigner中生成Oracle版本主键和自增列
  11. 【技术美术图形部分】2.2 模型与材质基础
  12. 单片机定时器实现的数字时钟
  13. Python - 装机系列22 华擎A520+AMD 4650G + Ubuntu装新机过程
  14. matlab离散系统差分求全响应,实验七(1)
  15. 微服务中API网关的作用是什么?
  16. 北漂IT男返乡创业,草根逆袭回忆录(下)
  17. 【Java】插入排序、希尔排序详解
  18. MATLAB 基础知识 数据类型 表 创建和使用表
  19. 微信小程序input数据的双向绑定
  20. JS去掉“确认重新提交表单”提示

热门文章

  1. 抽象工厂模式-与-工厂方法模式区别
  2. Dockerfile 简版大全,附赠编写实例
  3. 【Bugly干货分享】iOS内存管理:从MRC到ARC实践
  4. Caffe 编译安装
  5. Android之View和SurfaceView
  6. 帮朋友招一个IM开发人员
  7. CentOS7下搭建Nginx+PHP7的安装配置
  8. Next.js 7.0正式发布:重新编译速度提高42%,支持WebAssembly
  9. 为 raspberrypi 开发内核模块
  10. 2010版CCNP教材一览【图文】