1.throws
抛出异样,谁调用谁解决
在办法后申明异样 办法名() throws 异样类型
public class Test1_Exception {
public static void main(String[] args) {
// TODO Auto-generated method stub
// method();//裸露异样
try {
method2();
} catch (ArithmeticException e) {
// TODO Auto-generated catch block
System.out.println("除数不为0");
}
}
public static void method2 () throws ArithmeticException{
int a=5;
int b=0;
System.out.println(a/b);
}
public static void method() {
// TODO Auto-generated method stub
int a=5;
int b=0;
System.out.println(a/b);
}
}
2.abstract
被abstract润饰的办法称为形象办法
形象办法能够没有办法体;
一个类中存在形象办法,他就是抽象类
抽象类不容许实例化
子类继承形象父类,要么实现父类全副的形象办法,要么它被定义为一个抽象类
public class test2_Abstract {
public static void main(String[] args) {
// TODO Auto-generated method stub
Animal cat=new Cat();
cat.eat();
cat.sleep();
// Animal b=new Dog();//抽象类不能实例化
}
}
//当一个类中存在形象办法,那么这个类就是抽象类
abstract class Animal{
//形象办法能够没有办法体
public abstract void eat();
public void sleep() {
System.out.println("呼呼大睡");
}
}
//当一个类继承抽象类,要么重写抽象类的形象办法,要么他也是一个抽象类
abstract class dog extends Animal{
}
class Cat extends Animal{
@Override
public void eat() {
// TODO Auto-generated method stub
System.out.println("猫吃鱼");
}
public void sleep() {
System.out.println("呼呼大睡+++++");
}
}
3.abstract的用法
抽象类中能够有构造方法,抽象类尽管本人不能够实例化,然而它的子类实例化,须要父类的无参结构
ublic class Test3_UseAbstract {
public static void main(String[] args) {
// TODO Auto-generated method stub
Aniaml2 a=new dog2();
}
}
abstract class Aniaml2{
public Aniaml2() {
System.out.println("父类的构造方法");
}
}
class dog2 extends Aniaml2{
public dog2() {
super();
System.out.println("子类的构造方法");
// TODO Auto-generated constructor stub
}
}
抽象类中能够存在变量和常量,子类继承抽象类,能够批改变量,不能够批改常量
public class Test4_UseAbstract2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Animal3 dog3=new Dog3();
dog3.name="泰迪";
System.out.println(dog3.name);
// dog3.MAX_VLAUE=18;
System.out.println(dog3.MAX_VLAUE);
}
}
abstract class Animal3{
String name="大黄";
public static final byte MAX_VLAUE=127;
}
class Dog3 extends Animal3{
}
抽象类中能够都为一般办法,抽象类不能够实例化
抽象类能够存在一般办法和形象办法
子类继承抽象类,要么重写抽象类的所有形象办法,要么定义为一个抽象类。子类在没有重写父类一般办法时拜访的是父类的一般办法,重写后拜访的是子类的重写办法。
public class Test5_UseAbstract3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Animal4 a=new Dog4();
a.sleep();//一般办法--重写前用父类的,重写后用子类的
a.eat();//形象办法--用了父类的办法申明,子类的办法体
a.game();//形象办法--用了父类的办法申明,子类的办法体
}
}
abstract class Animal4{
public void sleep() {
System.out.println("sleep()...");
}
public abstract void eat();
public abstract void game();
}
class Dog4 extends Animal4{
@Override
public void eat() {
// TODO Auto-generated method stub
System.out.println("eat()...");
}
@Override
public void game() {
// TODO Auto-generated method stub
System.out.println("game()...");
}
}
abstract class Cat4 extends Animal4{
@Override
public void eat() {
// TODO Auto-generated method stub
System.out.println("eat222()...");
}
}
abstact实例
–需要:
具体事物:培优班老师,高手班老师
共性:备课 / 讲课
测试:创立多态对象测试
public class Test6_Design {
public static void main(String[] args) {
// TODO Auto-generated method stub
Teacher cGBTeacher=new CGBTeacher();
Teacher actTeacher=new ActTeacher();
cGBTeacher.ready();
cGBTeacher.teach();
actTeacher.ready();
actTeacher.teach();
}
}
abstract class Teacher{
public abstract void ready();
public abstract void teach();
}
class CGBTeacher extends Teacher{
@Override
public void ready() {
// TODO Auto-generated method stub
System.out.println("培优班老师 筹备 电商我的项目");
}
@Override
public void teach() {
// TODO Auto-generated method stub
System.out.println("培优班老师 讲 电商我的项目");
}
}
class ActTeacher extends Teacher{
@Override
public void ready() {
// TODO Auto-generated method stub
System.out.println("高手班老师 筹备手写框架");
}
@Override
public void teach() {
// TODO Auto-generated method stub
System.out.println("高手班老师 讲增强局部");
}
}
发表回复