-
java继承类时提示构造函数缺少_JAVA继承时构造函数的问题
2021-03-03 13:31:04今天看到java继承部分时,关于构造函数是否继承以及如何使用时遇到了点问题,后来查找相关资料解决了。下面是我个人的总结:先创建一个父类,里面有两个构造函数:public classJisuan {protected int a=4;//构造函数...今天看到java继承部分时,关于构造函数是否继承以及如何使用时遇到了点问题,后来查找相关资料解决了。
下面是我个人的总结:
先创建一个父类,里面有两个构造函数:
public classJisuan {protected int a=4;//构造函数1
Jisuan()
{
System.out.println("父类的无参数构造函数");
}//构造函数2
Jisuan(inta)
{
System.out.println("父类的有参数构造函数");
}
}
再创建一个子类,里面也有两个构造函数:
public class JisuanKid extendsJisuan {//构造函数3
publicJisuanKid() {
System.out.println("子类的无参数构造函数");
}//构造函数4
public JisuanKid(inta) {
System.out.println("子类的有参数构造函数");
}
}
再创建第三个类;
public classTestArray {public static voidmain(String[] args){
JisuanKid jisuan= new JisuanKid(3);
}
}
1、此时执行:
结果:
父类的无参数构造函数
子类的有参数构造函数
2、去掉构造函数1
结果:出错
3、去掉构造函数1和2
执行结果:
子类的有参数构造函数
4、去掉构造函数4
执行结果:
父类的无参数构造函数
出现错误
结论如下:
1.子类不能继承父类的构造函数
2.若父类中无任何构造函数,则系统默认加上无参数构造函数,创建子类对象时会调用父类的默认无参数构造函数创建父类。然后再调用子类的相应构造函数
3.若父类中有带参数构造函数,则系统不会添加默认无参数构造函数,创建子类对象时会调用父类的无参数构造函数创建父类对象,因为此时父类没有无参数构造函数,故会报错。
4.另外还可以在子类的构造函数中,使用super()或者super(参数名)来使用父类的无参数构造函数和带参数构造函数
-
java继承构造器带参数的类
2018-11-04 15:49:12Game和BoardGame基类的构造器都带参数 导出类必须自定义构造器,并显示调用基类构造器 输出- Game和BoardGame基类的构造器都带参数
- 导出类必须自定义构造器,并显示调用基类构造器
- 输出
-
JAVA工具类(6)- Controller继承类获取请求参数
2018-06-10 16:12:29import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.slf4j.Logger; import org.s...import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; public class BaseController { protected Logger logger = LoggerFactory.getLogger(this.getClass()); private Integer defaultPage = 1; private Integer defaultPageSize = 15; public Map<String, Object> getParams() { HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()) .getRequest(); Map<String, Object> initParams = ParamsUtil.handleServletParameter(request); int currentPage = defaultPage; if (!isNullOrEmpty(initParams.get("page"))) { try { currentPage = Integer.parseInt(String.valueOf(initParams.get("page"))); } catch (NumberFormatException e) { currentPage = defaultPage; } } initParams.put("currentPage", currentPage); int pageSize = defaultPageSize; if (!isNullOrEmpty(initParams.get("rows"))) { try { pageSize = Integer.parseInt(String.valueOf(initParams.get("rows"))); } catch (NumberFormatException e) { pageSize = defaultPageSize; } } initParams.put("pageSize", pageSize); initParams.put("IP", NetWorkUtil.getRemortIP(request)); logger.debug("input params is {}",new Object[]{initParams}); return initParams; } public static boolean isNullOrEmpty(Object o) { return o == null || String.valueOf(o).trim().length() == 0; } public String getRequestContent(HttpServletRequest request) { StringBuilder buffer = new StringBuilder(); BufferedReader reader = null; try { request.setCharacterEncoding("UTF-8"); reader = new BufferedReader(new InputStreamReader( request.getInputStream(), "UTF-8")); String line = null; while ((line = reader.readLine()) != null) { buffer.append(line); } } catch (Exception e) { logger.error("接收request请求处理异常:",e); logger.info("接收request请求报文:" + buffer.toString()); } finally { if (null != reader) { try { reader.close(); } catch (IOException e) { logger.error("接收request请求信息时失败:", e); } } } return buffer.toString(); } }
-
java 继承抽象类_java基础之继承,抽象类
2021-03-05 15:25:16一、继承 :就是子类继承父类的非私有属性和行为二、特点1、子类和父类中出现了同名的成员变量时,在子类中需要访问父类中非私有成员变量时,需要使用 super 关键字格式:super.父类成员变量名2、如果子类父类中出现...一、继承 :就是子类继承父类的非私有属性和行为
二、特点
1、子类和父类中出现了同名的成员变量时,在子类中需要访问父类中非私有成员变量时,需要使用 super 关键字
格式:super.父类成员变量名
2、如果子类父类中出现重名的成员方法,这时的访问是一种特殊情况,叫做方法重写
重写【覆盖】:子类中出现与父类一模一样的方法时(返回值、方法名、参数列表等都相同),子类的方法会覆盖父类的方法
注意事项
a. 子类方法覆盖父类方法,必须要保证权限大于等于父类权限。
b. 子类方法覆盖父类方法,返回值类型、函数名和参数列表都要一模一样。
3、继承关系中:字父类的构造方法特点
a.子类构造方法中不写父类构造方法,会默认隐含super()调用,所以一定是先调用父类构造,然后调用子类构造
b.子类构造可以通过super关键字来调用父类构造,从而初始化父类成员变量
c.super的父类构造调用,必须放在子类构造方法的第一个语句,而且仅能出现一次
三、 抽象类
1、定义
抽象方法 : 没有方法体的方法。
格式:
修饰符 abstract 返回值类型 方法名 (参数列表);
抽象类 :包含抽象方法的类
格式:
abstract class 类名字 { }
2、抽象的使用:继承抽象类的子类必须重写父类所有的抽象方法
3、抽象类的使用注意事项
a、抽象类不能创建对象,如果创建,编译无法通过而报错。只能创建其非抽象子类的对象。
理解:假设创建了抽象类的对象,调用抽象的方法,而抽象方法没有具体的方法体,没有意义。
b、可以有构造方法,是供子类创建对象时,初始化父类成员使用的。
理解:子类的构造方法中,有默认的super(),需要访问父类构造方法。
c、 抽象类中,可以包含非抽象方法,但是有抽象方法的类必定是抽象类。
理解:未包含抽象方法的抽象类,目的就是不想让调用者创建该类对象,通常用于某些特殊的类结构设计。
d、抽象类的子类,必须重写抽象父类中所有的抽象方法,否则,编译无法通过而报错。除非该子类也是抽象类。
理解:假设不重写所有抽象方法,则类中可能包含抽象方法。那么创建对象后,调用抽象的方法,没有意义
-
JAVA类继承
2019-03-03 23:38:30描述两个类的关系,从一般到特殊的关系,如车类、货车类,货车类是车类的特殊化,所以货车类(子类)就可以继承车类(基类、超类、父类)。 语法: class child extends father { //类体代码 } JAVA最多只允许一个... -
java 参数继承_java篇 之 继承
2021-02-27 13:47:13this代表正在使用类的对象(的引用)java支持重载:允许在同一个类中使用相同的方法名(重载类型只区分参数列表,包括参数 顺序,参数个数,参数数据类型,与方法返回类型无关)匹配:方法名参数列表类型调用如果参数... -
第五周学习java 继承 在子类父类中有相同参数,子类继承分类后如何进行调用,判断创建的对象属性哪个类
2020-03-19 10:49:221.在子类父类中有相同参数,子类继承分类后如何进行调用,判断创建的对象属性哪个类(instanceof) 2.子类继承父类时,怎么调用父类构造函数,以及如何访问到父类的私有属性,子类是否能够继承父类的私有属性 3.根父类... -
java 圆 继承_java 类的继承(转)
2021-02-12 20:48:59这个星期主要是学习了Java中类的继承问题.继承就是由已有的类创建新类,通过子类继承父类的方法,实现一些功能.下面就是老师布置作业的其中一个:定义父类圆,通过继承,获得子类球、圆锥、圆柱,子类具有计算体积的... -
java类继承总结
2019-04-07 11:14:14java中通过extends关键字来声明类的继承关系 类不能多继承,接口可以多继承。 子类能够直接访问父类非private成员和类变量和方法 子类能够重写(覆盖)父类成员变量和成员方法。 this和super的使用 this的使用 ... -
JAVA继承
2020-12-09 08:58:32JAVA继承 继承语法:修饰符 类名 extends 父类名{ //类定义的部分 } 继承通过关键字extends来实现,不可使用private和protected来修饰类。java只支持单继承 new 子类() 执行了哪些代码? 父类属性>代码块>... -
Java继承
2018-06-11 22:35:10继承(Inheritence):Java是单继承的,意味着一个类只能从另一个类继承(被继承的类叫做父类【基类,base class】, 继承的类叫做子类),Java中的继承使用extends关键字。 当生成子类对象时,Java默认首先调用... -
java中类的继承
2020-07-12 16:54:55关于java中类的继承 1.首先要有一个父类,然后才能够创建一个子类进行继承;所谓继承指的是子类中可以有承接父类中的方法和属性,并且还可以对父类中的方法进行重写。 2.基本的格式为 public class 子类 extends ... -
java 类的继承
2017-09-23 14:47:19这个星期主要是学习了Java中类的继承问题.继承就是由已有的类创建新类,通过子类继承父类的方法,实现一些功能. 下面就是老师布置作业的其中一个: 定义父类圆,通过继承,获得子类球、圆锥、圆柱,子类具有计算体积的... -
java 简单类继承
2013-08-31 20:46:54class Person { String name; int age; public String talk() { return "我是:"+this.name+",今年:"+... public Person()/* 无参数的构造函数*/ { System.out.println("1.public Person(){}"); } } clas -
java 继承关键字_Java继承extends与super关键字详解
2021-02-12 16:44:34super用来继承父类方法和参数。继承就是子类继承父类的特征和行为,使得子类具有父类相同的行为。注意事项:1、当一个类没有继承任何一个类时,系统默认继承Object。2、父类又被称为基类、超类、super类,子类又被... -
java继承关键字super_Java继承extends与super关键字详解
2021-02-26 20:58:37Java继承extends与super关键字详解发布时间:2020-09-22 23:07:54来源:脚本之家阅读:83作者:laozhang函数也称为方法!继承:在java中使用extends关键字来表示继承关系。super用来继承父类方法和参数。继承就是... -
Java 继承关系中的加载类顺序
2020-09-17 15:11:59在Java继承关系中,子类会自动继承父类中定义的方法,但有时子类会对父类方法进行重写,子类中重写的方法需要和父类被重写的方法具有相同的方法名、参数列表以及返回值类型。**要注意的是,父类的成员也同样会被子类... -
JAVA继承手机_Java继承练习
2021-03-09 06:00:14编写商品类,包含属性 名称,类型,价格,产地。1.为所有属性添加getter 与 setter,要求setter方法中参数名必须与属性名相同,使用this关键字2.编写构造函数给成员属性赋值,同样需要参数名与属性名相同,使用this... -
Java之类的继承
2016-07-27 19:55:45在Java语言中,继承通过extends关键字来实现。也就是用extends指明当前类是子类,并指明从哪个类继承而来。即在子类的声明中,通过extends关键字来显示的指明其父类。其基本的声明格式如下: [修饰符]class 子类名 ... -
java类的继承
2012-11-02 15:43:41java中类的继承 例: 以preson类为基类让student类继承 并添加参数; class Person { String name; private int age; Person(String n, int a) { name = n; age = a; } public void print() ... -
Java泛型类,方法使用,Java继承的歪解
2016-07-05 08:53:501.泛型类的使用(泛型:类型参数化) 2.泛型方法的使用 学习分享: 1.引用数据类型(基本数据类性的包装类)之间不可以直接强转,基本数据类型之间可以直接强转。(基本数据类型)引用数据类型 可以这么去转 2.Char...