1 /**
2 * @author Rabbit
3 * @version 1.0
4 * created on 2017/2/22 0022.
5 * 抽象类test
6 */
7
8
9 /*不确定父类方法的时候,就可以用抽象类*/
10 public class Test {
11 public static void main(String[] args){
12 Animal animal = new Cat();
13 // Animal animal = new Animal();
14 /*一个抽象类是无法被实例化的,但是可以实例化其子类。因为子类有具体的属性或方法*/
15 animal.cry();
16 }
17 }
18
19 abstract class Animal{
20 abstract public void cry(); /*抽象方法不可以有主体。有主体的时候意味着实现这个方法,与抽象概念相悖。*/
21
22 public void Test(){
23 /*抽象中可以有实现的方法主体,但不能是abstract修饰。*/
24 }
25 }
26
27 /*当一个类继承的类是抽象类的话,需要把抽象的所有抽象方法全部实现*/
28 class Cat extends Animal{
29
30 @Override
31 public void cry() {/*重写*/
32 System.out.println("喵~");
33 }
34 }
/**
* author : Rabbit
* created on 2017/2/22 0022.
* interface test
*/
public class Test2 {
public static void main(String[] args){
Computer computer = new Computer();
Camera camera = new Camera();
Telphone telphone = new Telphone();
computer.useUsb(camera);
computer.useUsb(telphone);
}
}
/*接口不可被实例化,而且接口里不允许有方法体,但抽象类可有可无*/
/*接口里面可以有变量,而且本质都是static和final的,不论加不加修饰符*/
/*接口中的变量不可使用private,protected修饰*/
/*接口可以继承别的接口,但是不能继承类*/
interface Usb{
/*接口是更加抽象的抽象类,接口体现了程序的多态和高内聚低耦合的的概念*/
boolean CONNECTION = true;
public void Start();
public void Stop();
}
/*当一个类实现了接口,就需要把这个接口中的所有方法全部实现*/
/*ps:一个类可以实现多个接口*/
class Camera implements Usb{
@Override
public void Start() {
System.out.println("检测到设备接入,开始工作。" + Usb.CONNECTION);
}
@Override
public void Stop() {
System.out.println("设备连接丢失,工作停止。");
}
}
/*当一个类实现了接口,就需要把这个接口中的所有方法全部实现*/
class Telphone implements Usb{
@Override
public void Start() {
System.out.println("检测到移动设备,usb开始工作");
}
@Override
public void Stop() {
System.out.println("移动设备连接丢失,usb停止工作");
}
}
/*接口也体现了多态(满足了OO原则:高内聚,低耦合)*/
class Computer{
public void useUsb(Usb usb){
usb.Start();
usb.Stop();
}
}
1 /*实现接口可以看做是对继承的一种补充。继承是层级的,牵一发而动全身,不太灵活。但是接口就不会这样
2 * 因为它只是针对实现接口的类才起作用*/
3 public class Test3 {
4 public static void main(String[] args){
5 LittleMonkey lm = new LittleMonkey();
6 lm.jump();
7 lm.fly();
8 lm.swimming();
9 }
10 }
11
12 class Monkey{
13 public void jump(){
14 System.out.println("嘿咻~");
15 }
16 }
17
18 interface Fish{
19 public void swimming();
20 }
21
22 interface Bird{
23 public void fly();
24 }
25
26 class LittleMonkey extends Monkey implements Fish,Bird{
27
28 @Override
29 public void swimming() {
30 System.out.println("新技能get : 游泳");
31 }
32
33 @Override
34 public void fly() {
35 System.out.println("新技能get : 飞翔");
36 }
37 }