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修饰
多态
同一个行为具有不同表现形式或形态能力;及对象创建不同其表现形式不同
多态的前提
- 有继承或实现关系
- 要有方法重写
- 父类引用指向子类对象
异常
所谓异常就是指程序运行可能出现的一些错误,而异常处理将会改变程序运行的流程,让程序有机会处理异常的错误。比如出现了分母为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;}
}