Java面向对象编程(3)--抽象类,接口,final
抽象类,存在的原因
父类方法的不确定性
解决之道
当父类的一些方法不确定的时候,可以用abstract关键字来修饰该方法【抽象方法】,用abstract来修饰该类『抽象类』
案例:
package com.panhui_1;
public classDemo9_23_1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}
//动物类
//方法和类要同时被修饰,不然会报错
abstract classAnimal
{
String name;
intage;
//动物会叫,不知道具体的实现方法
abstractpublicvoidcry();
}
//当一个类继承的父类是抽象的话
//需要把抽象类中的所有抽象方法全部实现
class Cat extendsAnimal
{
//事项父类中的cry
public void cry()
{
//do nothing or thing.......
}
}
可以理解为,子类方法在父类中申明,而且父类中的方法不需要实现方法内容。
抽象类----深入讨论
1, abstract关键字来修饰一个类的时,叫做抽象类
2, abstract关键字来修饰一个方法时,叫做抽象方法。
接口,存在的原因
Usb插槽就是现实中的接口。这个usb可以接很多不同的设备,显然每个设备的内部结构都是不同的,但是都可以使用用同一个接口
接口的使用语法
小结:
接口是更加抽象的抽象的类,抽象类中有很多方法体,接口里的方法都是没有方法体(方法实现内容)。有点像是将方法的申明都卸载一个类中,这个抽象的类就是接口
案例:接口,电脑,相机,u盘,手机。
package com.panhui_1;
public classDemo9_23_2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(Usb.a);
Computercomputer=newComputer();
//创建Cameral
Camerac1 = new Camera();
Phonep1 = new Phone();
computer.useUsb(c1);
computer.useUsb(p1);
}
}
//usb 接口
interface Usb
{
inta= 1;
//申明两个方法
publicvoidstart();
publicvoidstop();
}
//编写一个照相机类,并实现USb接口,
//一个重要的原则,当一个类使用一个接口的时候,
//就要求该类吧这个接口的所有方法都实现。
class Camera implements Usb
{
publicvoidstart()
{
System.out.println("我是相机,开始工作");
}
publicvoidstop()
{
System.out.println("我是相机,停止工作");
}
}
//编写一个手机类
class Phone implements Usb
{
publicvoidstart()
{
System.out.println("我是手机,开始工作");
}
publicvoidstop()
{
System.out.println("我是手机,停止工作");
}
}
//计算机
class Computer
{
//开始使用usb接口
public void useUsb(Usb usb)
{
usb.start();
usb.stop();
}
}
截图