该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

继承的关键字:extends

格式如下: class 子类名 extends父类名{

...

}

例如学生是继承人类这一父类的.

class student extends person{

...

}

如果一个类的声明没有使用关键字extends,则这个类默认是继承Object类的.Object是所有类的父类.Object是java.lang包中的类.

当一个子类继承了一个父类时,子类可以调用父类中的所有方法和成员变量.子类也可以单独自己声明方法或者变量下面的代码创建了4个class.分别是Dog,Cat,Animal和包含主函数的Main类.其中Dog和Cat是继承父类Animal的.

Cat继承Animal类:

package com.cnblogs;

public class Cat extends Animal{

//不带参数的默认构造器

public Cat(){

//super();必须出现在构造方法的首行.//this();也如此.

super();

// super("XX",10); 该代码表示调用父类带参的构造器

System.out.println("Cat构造器"); }

/*publicString name;

public int age;

public void walk(){

System.out.println("Cat....walk");

}

public void sleep(){

System.out.println("Cat....sleep");

} */

//注解提示

@Override

public void how(){

System.out.println(name +" "+"Cat....miaomiao");

//super 强制调用父类的show()方法法.

//如果没有super,show();是this.show();的默认写法.

//步骤是:先调用子类的show()方法.子类如果没有show方法才调用父类的show()方法

super.show();

}

public void show(){

System.out.println(name +" "+"Cat----->show");

}

}

声明Dog类:

package com.cnblogs;

public class Dog extends Animal {

/*public String name;

public int age;

public void walk(){

System.out.println("Dog....walk");

}

public void sleep(){

System.out.println("Dog....sleep");

} */

public void how(){

System.out.println(name +" "+"Dog....wangwang"); }

疯狂软件Java培训紧跟最新的Java潮流技术,国内首家讲解Java 8新特征,根据企业工作中需要的开发技术,让学员学习的课程是企业最需要的实用技术,而且也保障学员能把这些技能点学会、学好,并且疯狂软件教育的课程实时更新,在信息技术快速发展的情况下,可以保证学员学到更新更主流的技术。师资雄厚,教师均拥有8年以上的项目实践经验,疯狂软件Java课程是理论与实践相结合,这样保障了学员很好的掌握理论知识同时,也能根据理论的指导做好实际的工作。

}

创建一个Animal的父类:

package com.cnblogs;

//Animal不写继承就是默认继承Object类. //抽象类不能new.传入的是子类的实例对象.

public abstract class Animal extendsObject{

public String name;

public int age;

//默认的不带参的构造器

public Animal(){

this("baobao",2);

//this();调用的是下面带参的Animal的方法

System.out.println("Animal--->()");

}

//带参的构造器.给属性赋初始值

public Animal(String name,int age){

this.name = name;

this.age = age;

System.out.println("Animal--->(name,age)");

}

public void walk(){

System.out.println(name +"---->walk");

sleep();

how();

//this.show 调用的是子类的show()方法,如果子类没有show()方法.在调用父类的show()方法.

this.show();

}

public void sleep(){

System.out.println(name +"---->sleep");

}

//抽象方法.

public abstract void how();

public void eat(){

System.out.println(name +"---->Eat");

}

public void play(){

System.out.println(name +"---->Play");

}

public void show(){

System.out.println(name +" "+"Animal---->show");

}

}

Main类(包含主函数):

package com.cnblogs;

public class Main{

public static void main2(String[] args) {

//生成一个cat对象

Cat cat = new Cat();

cat.name ="xiaohua";

cat.age = 3;

cat.walk();

cat.how();

//生成一个dog对象

Dog dog = new Dog();

dog.name = "xiaomei";

dog.age= 3;

dog.walk();

dog.eat();

dog.how();

//调用的是调出来的对象

Animal animal = new Cat();

animal.name = "HH";

//调用的是子类Cat()的how()方法.

animal.how();

Animal animal2 = new Dog();

animal2.name = "XX";

//调用的是子类Dog()的how方法

animal2.how();

animal.walk();

//GetMsg方法要求传入的是子类cat,所以传入的必须是cat,而不能是animal.

GetMsg(cat);

GetMsg(dog);

GetMsg(animal2);

}

/* public static void GetMsg(Cat cat){

cat.how();

}*/

//将子类的对象传入给父类的引用//比上面的传入单独的cat灵活,一般使用下面这种方法

public static void GetMsg(Animal animal){

animal.how();

}

/** *1. new一个对象以后先调用子类Cat的第一个方法,运行super();调用父类Animal的第一个方法

*2. 父类中的构造方法执行this();方法,this方法又调用Animal带参数的方法并输出;在返回不带参的构造器执行this();下面的输出语句

*3. 在返回子类Cat中执行super();下面的语句,输出"Cat构造器"

*4. 接着animal.how()调用new出来的对象 cat的how()方法

*5. 执行子类Cat()方法中的how()方法,并输出.

*6. 接着在运行how()方法中的super().show;然后调用父类Animal的show()方法.并输出相应的结果. **/

public static void main(String [] args){

Animal animal = new Cat();

animal.how(); }

}

super();调用父类的构造器,方法和属性.

this();调用该方法的当前对象.

java super extends_Java继承和super的用法相关推荐

  1. java super extends_Java继承extends与super关键字

    版权声明:转载原创文章请以超链接形式请注明原文章出处,尊重作者,尊重原创! 恰饭广告 函数也称为方法! 继承:在java中使用extends关键字来表示继承关系.super用来继承父类方法和参数. 继 ...

  2. Java面向对象之继承、super关键字、方法重写

    一.继承 1.简单说明 子类可以拥有父类中除了私有变量/函数外的所有的内容,当出现x是y的一种什么的时候可以使用继承,x继承于y,x是y的儿子,x子类是对y父类的扩展. 反映的是一种特殊关系,如动物- ...

  3. python的继承用法_Python 中的继承之Super用法

    以下Copy自官方文档说明,可点击查看官网源文 翻译内容属于德德自译,有不当之处请指正,勿喷... 翻译括弧中是德德自己理解,通过代码验证的,勿喷... super(type[, object-or- ...

  4. Java:继承之super关键字,继承之私有权限,继承之方法重写,继承之object类,继承之简单工厂模式

    一.继承的概念及用法       继承背后的思想就是        基于已存在的类来构建新类         当从已存在类继承时,就重用了它的方法和属性,还可以添加新的方法和属性来定制新类以应对需求 ...

  5. python 重写抽象类编译错误_从零开始的Java之旅5.0继承、super、this、抽象类

    前言 昨天我们对Java的类与对象.封装.构造方法进行了充分讲解,今日我们学习继承.super.this.抽象类 今日内容: 三大特性--继承 方法重写 super关键字 this关键字 抽象类 继承 ...

  6. JAVA day06 继承,super,方法的重写,抽象类

    1.继承(extends) 继承涉及到两个类,子类(扩展类/衍生类)跟父类(基类/超类) 当多个类中存在相同属性和行为时,将这些内容单独提取到一个类,那么多个类里就不用再定义这些属性和行为了,只要继承 ...

  7. java 继承、super、this、抽象类

    java 继承.super.this.抽象类 三大特性--继承 方法重写 super关键字 this关键字 抽象类 第一章 继承 1.1 概述 由来 多个类中存在相同属性和行为时,将这些内容抽取到单独 ...

  8. Java面向对象之继承,方法重写,super关键字,员工类系列继承题

    在程序中,如果想声明一个类继承另一个类,需要使用extends关键字. 格式: class 子类 extends 父类 {} 继承的好处 1.继承的出现提高了代码的复用性,提高软件开发效率. 2.继承 ...

  9. (JAVA学习笔记) 类的继承,super,方法的重写,多态

    文章目录 类的继承,super,方法的重写,多态 1.类的继承 代码演示: 2.super和this 代码演示: 3.方法的重写 代码演示: 4.多态 代码演示: 类的继承,super,方法的重写,多 ...

最新文章

  1. 分布式架构的对比-IBM XIV
  2. 对称加密算法DES,3重DES,TDEA,Blowfish,RC5,IDEA,AES。
  3. easyui js解析字符串_js相关:详解Jquery Easyui的验证扩展
  4. 微软u盘安装工具_使用微软Winget工具安装软件教程
  5. mysql的库与表的增删查改
  6. 网络安全实验报告 第一章
  7. php使用 js格式解析,JavaScript解析JSON格式数据的方法示例
  8. linux文件系统的总体架构,Linux NFS的整体架构与核心代码解析
  9. python自定义类
  10. python 清屏_见识Python百宝箱,十行代码制作动态广告牌
  11. java怎么缓存数据_java中的缓存技术该如何实现
  12. 从github安装C++库,makefile、
  13. 响应式高端大气的模板源码图库素材资源下载平台网站源码,无加密无后门
  14. 禁忌搜索算法-关键操作与原则
  15. 神经网络的相关函数以及误差类型
  16. meltdown linux 补丁,谈谈CentOS发布内核安全补丁:修复Meltdown和Spectre漏洞
  17. 兜兜转转。最终还是选择了它——C语言学习历程
  18. iText生成pdf中文字体
  19. 一种无法用言语表达的爱——父爱
  20. 智能血糖仪方案/案列/APP/小程序/项目

热门文章

  1. ios与android指纹识别,iOS开发swift -- 指纹识别
  2. java实现短信上行源码_Java 发送短信验证码 示例源码
  3. mysql 查询auto_increment_MySQL查询数据表的Auto_Increment(自增id)
  4. java timer schedule_java怎么再次设置Timer的schedule???
  5. 软件设计师 - 软件工程
  6. BeanUtils对象之间的复制
  7. springboot导包显示不存在_BOOT项目依赖另外一个模块的包,开发的时候都正常,执行clean package打包成jar时却提示依赖的模块包不存在。...
  8. 如何使用dll ip转换_如何使用多功能转换插座更安全
  9. 计算机网络按照延伸距离划分为,大学计算机考试练习题.doc
  10. 双向循环链表c语言,双向循环链表的实现与使用