首页 > 编程语言 >继承性#java#面向对象

继承性#java#面向对象

时间:2024-03-10 20:12:14浏览次数:15  
标签:java 子类 System 面向对象 println 继承性 父类 public 构造函数

继承性

  • 子类(也称为派生类)继承父类(也称为基类),子类就获取到了父类中声明的所有属性和方法(构造方法不能继承,只能在子类构造方法第一行调用父类的构造方法)。但是由于封装性的影响,可能子类不能直接调用父类中的属性和方法(如父类中声明为private)。继承提高了代码的复用性

  • 子类继承父类后,可以扩展自己的属性和方法。继承的出现更有利于功能的扩展

  • 子类继承父类后,还可以重写方法,也叫方法的覆盖,覆盖是指派生类中存在重新定义的函数,其与父类中的某个函数(函数名、参数列表、返回值类型)都相同,那么当派生类对象调用该函数时,会自动调用子类中的覆盖版本。不过要注意:实现方法覆盖时,子类方法不能比父类的方法权限小,子类方法抛出的异常不能比父类多。注意方法覆盖与方法重载的不同

super 关键字

结论:

  • Java构造器不是函数,所以不能被继承,只能在子类构造方法第一行通过使用super来调用父类的构造方法。

  • 如果父类中有显式无参构造函数或者默认无参构造函数时,子类中的构造函数的方法体中会默认调用父类无参构造函数。当然,以上情况下我们也可以自行在子类构造函数中通过super()来显式调用父类无参构造函数或通过super(参数)来显式调用父类有参构造函数。但是,当父类中仅有有参构造函数时,那么子类构造函数中必须由我们手动通过super(参数)来显式调用,否则运行时会报错。

以下由两段代码用于解释:

标签:java,子类,System,面向对象,println,继承性,父类,public,构造函数
From: https://www.cnblogs.com/yang-xiaojie/p/18064707

相关文章

  • 多态性#java#面向对象
    多态性静态多态:也称为编译期间的多态,编译器在编译期间完成的,主要通过函数重载实现。编译器根据相同函数名的不同参数列表,可推断出要调用哪个函数。publicclassPerson{publicvoidsay(){System.out.println("我是第一个名为say的方法!");}publicvo......
  • java springboot拦截器的实现及用法
     1.前景,有时候我们在不同的地方需要使用用户的信息,我们可以使用threadLocal存储信息,这样我们在在这个线程随时使用用户信息了,不用自己在写一段冗余代码了,这时候使用拦截器就很不错 2.实现1.实现HandlerInterceptor2.重写实现方法  preHandle:在业务处理器处理请......
  • Java登陆第三十四天——Node.js安装、npm配置、npm命令
    Nodejs是JS的运行环境,使JS可以运行在服务端,可以夸平台,可以运行在浏览器之外,成为一款全栈编程语言。Node.js安装Nodejs官网,进入......
  • 学java15结构
    1.顺序结构java的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行。顺序结构是最简单的算法结构。语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构。2.选择结构if单选择结......
  • 手撕Java多线程(四)线程之间的协作
    线程之间的协作当多个线程可以一起去解决某个问题时,如果某些部分必须在其他部分之前完成,那么就需要对线程进行协调。join()在线程中调用另一个线程的join()方法,会将当前线程挂起,而不是忙等待,直到目标线程结束。对于以下代码,虽然b线程先启动,但是因为在b线程中调用了a线程的join......
  • java.net.UnknownHostException: api.weixin.qq.com解决办法
    java.net.UnknownHostException: api.weixin.qq.comat java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:175)at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:384)at java.net.Socket.connect(Socket.java:546)at sun.security.ssl.SSLSo......
  • 学java14用户交互Scanner
    我们可以通过Scanner类来获取用户的输入基本语法Scanners=newScanner(System.in);通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()与hasNextLine()判断是否还有输入的数据。程序实例packageScanner;importjava.util.Scann......
  • 学java13javaDoc生成文档
    找到类的地址,进入类所在文件夹,在导航栏中最前面添加“CMD(空格)”后回车javadoc-encodingUTF-8-charsetUTF-8文件名.java通过idea生成:tools/生成javadoc/第一步:选择生成JavaDoc文档的范围,我只对一个源文件生成Doc,所以选择文件。第二步:输出目录最好新建一个文件......
  • 在Java中,HashMap中是用哪些方法来解决哈希冲突的?
    HashMap中调用hashCode()方法来计算hashCode。由于在Java中两个不同的对象可能有一样的hashCode,所以不同的键可能有一样hashCode,从而导致冲突的产生。采用链地址法解决冲突。HashMap底层是数组+链表+红黑树(JDK1.8)来实现的,根据key的hash值查找对应的位桶。1.当前索引数组为空,则......
  • Java学习笔记——第十一天
    面向对象高级(二)多态多态是在继承/实现情况下的一种现象,表现为:对象多态、行为多态。多态的具体代码体现//使用同一个类名创建了不同类型的对象,体现了对象多态Peoplep1=newStudent();Peoplep2=newTeacher();//不同类型的对象调用了同一个名字的方法,体现了行为多态p1......