JAVA 进阶

news/2024/11/30 18:54:34/

Java继承,多态,接口,异常

Java进阶之子类与继承

继承:让类与类之间产生关系,子类可以直接使用父类中非私有的成员‘

  • 格式 ;public class 子类名 extends 父类名{}
  • fu; 是父类的意思;也被叫做基类或超类
  • zi;是子类,也叫做派生类

在这里插入图片描述

  • 当我们需要重复用到一些变量时,每次单独定义就会造成代码冗杂,此时可以用继承来优化代码,我们可以将相同的内容提取编写一个类,关键字extends,可以用来建立这种关系如下:

    public class Emp{
    String name;
    int age;
    double salary;
    }
    public class he extends Emp{

    }
    public class she extends Emp{

    }

    public class Example_1{
    public static void main(String [] args){
    he he1 = new he();
    she she1 = new she();
    she1.neme = llllll;
    he1.age = 88;//直接引用成员变量
    he1.salary = 9999;
    System.out.peintln(“她的名字;”+she1.name);
    System.out.println(“他的年龄 :”+he1.age,“他的薪水”+he1.salary);
    }

    }

注意:使用private修饰的成员变量是无法继承的,此时可用get set 方法使用

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

变量引用就近原则

在这里插入图片描述
当子类与父类重名时,先调用子类,若用super后可调用父类变量

继承中方法的继承

  • 当子类方法与父类方法一样时,调用会优先使用优先使用子类方法,实际上是子类方法对父类的重写
    在这里插入图片描述

继承中类方法的特点

. 支持单继承,不支持多继承,但可以多层继承。
在这里插入图片描述

接口

  • 接口体现的是规则的声明,java中接口更多的的体现对行为的抽象(一个类中所有的方法都是抽象方法)
在这里插入代码片package com.itheiam.minterface;/*
接口就是声明规则接口和类之间是实现关系*/
public class jk {public static void main(String [] args){//创建实现的对象student student1 = new student();student1.sleep();student1.speak();}
}
interface  inter{public void speak();public void sleep();
}
class student implements inter{
//重新接口的抽象方法@Overridepublic void speak() {System.out.println("asdhsadasdhsahdhas");}@Overridepublic void sleep() {System.out.println("SDUHASDHJKASJKDKASDK");}
}
abstract class oo implements inter{}//可以把实现类变成抽象类就不会报错了

在这里插入图片描述

接口的成员特点

  • 成员变量
  • 一般方法
  • 构造方法:没有

1.接口的成员变量默认被public和static和final修饰`

在这里插入图片描述
2.成员方法默认有public和abstract修饰
在这里插入图片描述

多态

同一个行为具有不同表现形式或形态能力;及对象创建不同其表现形式不同
在这里插入图片描述
多态的前提

  1. 有继承或实现关系
  2. 要有方法重写
  3. 父类引用指向子类对象

在这里插入图片描述

异常

所谓异常就是指程序运行可能出现的一些错误,而异常处理将会改变程序运行的流程,让程序有机会处理异常的错误。比如出现了分母为0的除法。
在这里插入图片描述
我们可以使用选择语句进行修改
在这里插入图片描述
我们也可以用try -catch语句处理
在这里插入图片描述
在这里插入图片描述

package com.itheiam.minterface;import jdk.jfr.events.ExceptionThrownEvent;public class jk {public static void main(String [] args){int a = 0;int b = 8;try {System.out.println("值:"+(b/a));}catch (Exception e){System.out.println("值;"+(b/(a*a)));}finally {System.out.println("程序结束");}{}}
}

如上图所示

自定义异常类

在这里插入图片描述
在这里插入图片描述

在这里插入代码片import jdk.jfr.events.ExceptionThrownEvent;public class jk {public static void main(String [] args){}
}
class  yichang extends Exception{String M;public  yichang(int m){M = "CUOWU"+m+"ll";}public String FAH(){return M;}
}
class age{int age;public age(int age){this.age=age;}int getAge(){return age;}
}

http://www.ppmy.cn/news/757877.html

相关文章

Hi-C 测序技术(图解详解)

文章目录 一、介绍二、原理及步骤三、三维基因组检测技术比较1、C技术3C(一对一)4C(一对多)5C(多对多)Hi-C(全部互作) 2、基于免疫沉淀技术ChIP-loopChIA-PET 四、总结 一、介绍 Hi…

IHE简介

一、 IHE是什么? IHE概念是由医学专家和广大医护工作者、相关政府部门、信息技术专家和企业共同发起的,目的是提供一种更好的方法让医学计算机系统之间更好地共享信息。IHE强化了一些已有的通讯标准,比如DICOM和HL7之间的协同工作&#xff0…

synchronized(this)和synchronized(.class)的理解

synchronized(this)和synchronized(.class)的理解 synchronized(this)验证:同一对象的Thread(苇名一心):不同对象的Thread(苇名一心和苇名弦一郎&…

Hive 1

简介 hive是使用SQL完成大数据统计分析的工具。 hive是facebook公司开源的工具,用来解决海量的结构化日志的统计问题。 hive是构建在hadoop之上的数据仓库。 HDFS: hive的 数据是放在HDFS (distributed storge), 元数据(metadata)存在对应的底层关系型…

python第三方库pygame的使用

作用:pygame一般用来做游戏 注意:1.在使用pygame提供的功能之前,需要调用init方法 2.在游戏结束前需要调用 quit 方法 pygame中的各个函数: 1.pygame.init():该函数在使用pygame时进行初始化,只有引用了该…

BUU[SCTF2019]Who is he

unity 用dnspy打开Assembly-CSharp.dll,分析主要加密 分析加密函数,DES加密(key和vi一样),和Base64 根据已知数据解密 ,但是在C#中,字符串默认是Unicode字符串,所以转成字节数组&am…

Qt自定义控件-坐标原点位置变化

1、qt界面默认绘制坐标是从左上角为原点进行绘制的,如下图所示: 2、重新设置原点位置 利用painter.translate函数将原点位置控制到指定位置 例如:先绘制一个矩形,然后将矩形的中心点作为原点再画直线 void paintEvent(QPaintEve…

ROS:工作空间覆盖

目录 一、概念二、示例2.1操作2.2原因 三、存在的问题 一、概念 所谓工作空间覆盖,是指不同工作空间中,存在重名的功能包的情形。 ROS 开发中,会自定义工作空间且自定义工作空间可以同时存在多个,可能会出现一种情况: 虽然特定工…