day 10接口

day10

接口
Q1:用java描述,会唱歌的厨子是个好老师
使用抽象类Person-Teacher继承Person类,并新建接口Cooking和Singing.

 public abstract class Person {//抽象的Person类
	int age;
	String name;
	int sex;
	
	public abstract void showInfo() ;//showInfo方法
}
package day09;
/**
 * 歌唱的接口
 * @author Administrator
 *
 */
public interface Sing {
	void singing();//唱法
}
package day09;
/**
 * 厨艺的接口
 * @author Administrator
 *
 */

public interface Cooking {
	void fry();//炒菜
}
package day09;
/**
 * 这个是描述会唱歌的厨子是一个老师的类
 * @author Administrator
 *
 */
public class Teacher extends Person implements Cooking,Sing{
	String course;//教的科目
	
	public void setInfo() {
		super.age = 35;
		super.name = "zhangsna";
		super.sex = 0;
		
		this.course = "数学";
	}
	
	@Override
	public void showInfo() {
		System.out.println("会唱歌的厨子是一个老师");
		System.out.println(super.age);
		System.out.println(super.name);
		System.out.println(super.sex);
		System.out.println(this.course);
	}

	@Override
	public void singing() {
		System.out.println(super.name + "老师擅长rap唱法");
		
	}

	@Override
	public void fry() {
		System.out.println(super.name + "老师拿手的菜是考田鼠");
		
	}
	
}

抽象类是对于一类事物的高度抽象,其中既有属性也有方法,接口时对方法的抽象,也就是对一系列动作的抽象
当需要对一类事物抽象的时候,应该是使用抽象类,好形成一个父类
当需要对一系列的动作抽象,就使用接口,需要使用这些动作的类去实现相应的接口即可.

Exception
try()//使用try来括住一段有可能出现异常的代码段
catch(Exception e)//当不知道捕获的是什么类型的异常时,可以直接使用所有异常的父类Exception
当排查出错误代码后,可以使用 e.printStackTrace();打印出错误提示
也可以使用e.getMessage()来打印错误提示//要使用System.out
Finally
finally 可以写也可以不写,它是捕获异常的体系中最终一段会执行的.

throws
用throws在代码这抛出异常,在调用方去处理

抛出异常,用try catch捕获异常代码

package day10;

public class Test {
	public static void main(String[] args) {
		
		A a = new A();
		try {
			a.test();
		}catch(Exception e){
			e.printStackTrace();
		}
		
	}
}

class A {
	int i;
	public void test() throws Exception{//使用throws抛出异常,在调用方去捕获处理
		A a = null;
		System.out.println(a.i);
	}

}

java.lang.NullPointerException
at day10.A.test(Test.java:20)
at day10.Test.main(Test.java:8)

打印后输出,空指针错误,代码问题出在第8行和第20行

子类重写父类方法不能抛出比被重写方法范围更大的异常类型//Exception 比 NullPionterException大

人工抛出异常

package day10;

public class Test {
	public static void main(String[] args) throws Exception {
		
		A a = new A();
		
		a.test1(-100);
		
	}
		
		
	
}

class A{
	
	int age;

	public void test1(int age) throws Exception  {
		
		if(age >=0 && age<= 150) {
			
			this.age = age;
			
			System.out.println("年龄是:" + this.age);
		
		}else {
			
			throw new Exception("年龄在0到150之间");
		
		}
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值