1.子类继承父类的方法属性,并重写父类的方法,子类修饰符不能比父类方法的修饰符的范围狭窄。

2.子类必须在构造函数中使用super()来调用父类的构造函数

说明:1.父类没有写构造函数(系统默认有一个无参构造函数),子类可以不写构造函数(可以理解为:子类的系统默认构造函数,默认调用了super();)

2.如果父类有无参构造函数,子类可以不写构造函数(同上理解)

3.如果父类有有参构造函数,则子类必须在自己的构造函数中显示的调用父类的构造函数即super(参数名)

4.如果父类的构造函数只有一个,且修饰符是private,则不可以被继承。

Protect 与 默认 区别:

protected :成员 本类和子类可以访问。【其他类不可以使用(即使同一个包中)】

Frinedly(友好/默认):成员 本类和子类,同包可以访问【其他类可以使用】

继承中的构造方法的执行顺序:父类有构造函数,子类也写构造方法的时候必须显示的调用父类的构造方法【子类在穿件对象的时候,掉用构造方法的顺序是:

第一步:调用父类的构造方法

第二部:调用子类的构造方法】

测试:

//父类

package ExtendsTesting;

public class Animal {
private String type;
public String name;
int tall;
//友好
char sex;
//protect方法,尝试对比友好和protect的区别
protected void eat(String string){
System.out.println("我吃:"+string);
}
//构造方法
public Animal(String name){
this.name=name;
}
//用于对比this.super写的方法,会在Dog子类中重写
public void speak(String s){
System.out.println("Animal方法调用");
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}

}

//子类

public class Dog extends Animal{
int tall;
String type;
public Dog(String name){
super(name);
this.name=name;
super.tall=100;
this.setType("哺乳动物");
type=this.getType();
System.out.println(this.getType());
}
//构造函数问题
// public Dog(int tall){
// super(name);
// this.tall=tall;
// }
public void speak(){
//这里的this和super会不一样(对比super的作用)
super.speak("调用");
this.speak("调用");
System.out.println("我是狗狗的speak()函数");
}
public void speak(String s){//重写父类的方法
System.out.println(s);
}
}

//子类

public class Duck extends Animal{

public Duck(String name) {
super(name);
// TODO Auto-generated constructor stub
}

}

//main测试类

public class Testing_animal {
public static void main(String[] args) {
//狗类继承Animal类
//初始化时调用构造函数就输出了小黄的动物种类
Dog xiaohuang=new Dog("小黄");
//调用Dog的speak函数,在speak函数中掉用了它的父类animal的speak函数
xiaohuang.speak();
//调用Dog重写的函数speak
xiaohuang.speak("调用Dog中的speak(String s)方法");
System.out.println(xiaohuang.name+"的身高是:"+xiaohuang.tall+"\t我是:"+xiaohuang.getType());

//鸭子类继承Animal类
Duck yazi=new Duck("鸭子");
yazi.setType("禽类");
System.out.println(yazi.name+"的动物种类是:"+yazi.getType());
System.out.println("小黄的动物种类:"+xiaohuang.getType());
//eat是protect方法
yazi.eat("菜叶子");
//sex是友好的属性
yazi.sex='雌';
}
}

Java继承,子类默认在构造函数中用super()调用父类构造函数相关推荐

  1. java 继承 子类 实例化_关于Java继承中父类和子类构造函数的问题

    Java子类在实例化时默认调用的是父类的无参构造函数,不论实例化时调用的是子类的有参还是无参构造函数, 1.当父类没有显式定义构造方法时, 编辑器会默认为此类添加一个隐式无参构造函数.此时子类可以有自 ...

  2. java super父类方法_java super关键字,super调用父类构造方法详解

    因为子类不可以继承父类的构造方法,所以,想要调用父类的构造方法的话,那么就可以使用得到super关键字下面的话就来对这个方面做一下详细的讲解. super关键字能够用来访问父类的构造方法.普通方法和属 ...

  3. 23.C++- 继承的多种方式、显示调用父类构造函数、父子之间的同名函数、virtual虚函数...

     上章链接: 22.C++- 继承与组合,protected访问级别 继承方式 继承方式位于定义子类的":"后面,比如: class Line : public Object // ...

  4. 什么是super?如何使用super调用超类构造函数?

    从之前的文章中分享过的一些知识,从Box派生的类并没有体现出它们的实际上是多么有效和强大.例如,BoxWeight构造函数明确的初始化了Box( )的width.height和depth成员. 这些重 ...

  5. Java super关键字:super调用父类的构造方法、利用super访问父类成员

    由于子类不能继承父类的构造方法,因此,要调用父类的构造方法,必须在子类的构造方法体的第一行使用 super() 方法.该方法会调用父类相应的构造方法来完成子类对象的初始化工作. 在以下情况下需要使用 ...

  6. 子类super调用父类函数,该函数中调用的函数是父类还子类呢

    如图所示: 子类对象通过super()函数调用父类的run函数,然后直接调用了子类的demo函数,而没有调用父类的函数:猜想通过super调用父类,但self仍然代表是子类本身: 再看一例: 从这里说 ...

  7. python实现父类继承_Python多继承用super调用父类方法?

    python的super传递:python多重继承的super调用父类的兄弟类 - 30天尝试新事情​30daydo.com 如果要调用父类的父类,可以直接用类名(类名需要在mro里面) # 多重继承 ...

  8. Java继承子类的构造函数

     每个Java类都必须有构造函数.如果没有显式定义构造函数,Java编译器自动为该类产生一个空的无形参构造函数.如果已经有了显式的有参构造函数,编译器就不会再为它自动产生了. 每个子类的构造函数的第一 ...

  9. Java继承-子类不可以继承父类的构造方法

    子类不可以继承父类的构造方法,只可以调用父类的构造方法. 子类中所有的构造函数都会默认访问父类中的空参数构造函数,这是因为子类的构造函数内第一行都有默认的super()语句. super()表示子类在 ...

最新文章

  1. inline函数返回值_C++知识补充-指针,const,函数指针,指针数组,运算符重载
  2. android Tabhost部件
  3. 微信快速开发框架(六)-- 微信快速开发框架(WXPP QuickFramework)V2.0版本上线--源码已更新至github...
  4. python字符串写入excel-python-xlwt写入excel详解
  5. jar包打补丁 jar -uf_windows下批处理指定不同jdk版本运行jar包
  6. 【盘点2018】社交领域投融资报告来了!
  7. SAP Spartacus UnitDetailsComponent的路由跟踪
  8. 《HBase权威指南》一导读
  9. 在SQL Server2005中使用 .NET程序集
  10. PyTorch官方教程中文版:入门强化教程代码学习
  11. 24.Forbidden
  12. [导入]RSS商业应用和电子商务的结合
  13. PHP字符串作为字节数组,哈希hash然后base64编码
  14. 医疗图像配准-点云配准总结
  15. 土地房屋权属登记系统
  16. 睡眠是锁定计算机怎么设置密码,电脑休眠锁屏怎么设置
  17. Stata:如何生成天马行空的空间权重矩阵?
  18. 使用Python代码下载网易音乐歌曲
  19. 处理各种压力(情绪、家庭)时,需要注意什么!
  20. 微软e5服务器,微软E5 自动订阅程序

热门文章

  1. 如何测试移动端APP
  2. 我是唱作人2的mv下载方法步骤
  3. gitlab中如何删除项目
  4. 创建两个线程,其中一个输出1 - 52,另外一个输出A - Z。输出格式要求: # 12A 34B 56C 78D 【更新两种方法】
  5. 环境管理:开发、测试和生产环境
  6. hrbust 哈理工oj 1418 夏夜星空【带权并查集】
  7. 【兼职经验】有哪些可以发布视频就能赚钱的视频平台
  8. 电容笔有什么用?Ipad2022电容笔推荐
  9. 中国互联网的十二月大灾变
  10. 数据通信--ASCII码通信16进制通信的区别