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{
//重新接口的抽象方法
@Override
public void speak() {
System.out.println("asdhsadasdhsahdhas");
}
@Override
public void sleep() {
System.out.println("SDUHASDHJKASJKDKASDK");
}
}
abstract class oo implements inter{
}//可以把实现类变成抽象类就不会报错了
接口的成员特点
- 成员变量
- 一般方法
- 构造方法:没有
1.接口的成员变量默认被public和static和final修饰`
2.成员方法默认有public和abstract修饰
多态
同一个行为具有不同表现形式或形态能力;及对象创建不同其表现形式不同
多态的前提
- 有继承或实现关系
- 要有方法重写
- 父类引用指向子类对象
异常
所谓异常就是指程序运行可能出现的一些错误,而异常处理将会改变程序运行的流程,让程序有机会处理异常的错误。比如出现了分母为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;
}
}