java画蝴蝶_Java从入门到精通05-抽象类、接口、Final

1、父类方法不能确定时 ,可以用abstract关键字来修饰该方法;

2、当一个类继承的父类是抽象类的话,需要我们把抽象类中的所有抽象方法全部实现;

抽象类的注意事项:

1、抽象类不能被实例化;

2、抽象类不一定要包含抽象方法,也就是说,抽象类可以没有abstract方法;

3、一旦包含类abstract方法,则这个类必须声明为abstract;

4、抽象方法不能有主体,如:abstract void aaa(){};

------------------------------------------------------------------------------------------

接口就是给出一些没有内容的方法,封装在一起,到某个类要使用的时候,再根据具体情况把这些方法写出来。语法如下:

class 类名 implement 接口 {

方法;

变量;

}

接口是更加抽象的抽象类,抽象类里的方法可以有方法体,接口里的所有方法都没有方法体。

接口体现了程序设计的多态和高内聚低耦合的设计思想。

接口的注意事项:

1、接口不能被实例化;

2、接口中所有的方法都不能有主体;

3、一个类可以实现多个接口;

4、接口中可以有变量(但变量不能用private和protected修饰),接口中的变量本质上都是static的,而且是final,不管你加不加static修饰;在java开发中,我们经常把经常用的变量,定义在接口中作为全局变量使用;

5、一个接口不能继承其他的类,但可以继承别的接口;

实现接口VS继承类

java的继承是单继承,也就是一个类最多只能有一个父类,这种单继承的机制可保证类的纯洁性,比C++中的多继承机制简洁。

1、实现接口可以看作是对继承的一种补充;

2、实现接口可在不打破继承关系的前提下,对某个类功能扩展,非常灵活;

interfaceUsb{int a=1;public voidstart();public voidstop();

}class Camera implementsUsb{public voidstart(){

System.out.println("Camera is starting");

}public voidstop(){

System.out.println("Camera is stoping");

}

}class Phone implementsUsb{public voidstart(){

System.out.println("Phone is starting");

}public voidstop(){

System.out.println("Phone is stoping");

}

}classComputer{public voiduseUsb(Usb usb){

usb.start();

usb.stop();

}

}public classTest {public static voidmain(String[] args){

System.out.println(Usb.a);

Computer computer=newComputer();

Camera camera=newCamera();

Phone phone=newPhone();

computer.useUsb(camera);

computer.useUsb(phone);

}

}

再一典型实例:

interfaceCar{

String getName();intgetPrice();

}class BMW implementsCar{publicString getName(){return "BMW";

}public intgetPrice(){return 300000;

}

}class CheryQQ implementsCar{publicString getName(){return "CheryQQ";

}public intgetPrice(){return 30000;

}

}public classCarShop {private int money=0;public voidsellCar(Car car){

System.out.println("车型:"+car.getName()+",单价:"+car.getPrice());

money+=car.getPrice();

}public intgetMoney(){returnmoney;

}public static voidmain(String args[]){

CarShop carShop=newCarShop();

carShop.sellCar(newBMW());

carShop.sellCar(newCheryQQ());

System.out.println("总销售额:"+carShop.getMoney());

}

}

=============================================================

final注意事项:

1、final修饰的变量又叫常量,一般用xx_xx_xx来命名;

2、final修饰的变量在定义时,必须赋值,并且以后不能再赋值或修改;

final使用时机:

1、因为安全的考虑,类的某个方法不允许修改;

2、类不会被其他的类继承;

3、某些变量值是固定不变的,比如圆周率3.1415926

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值