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("高手班老师 讲增强局部"); } }