JAVA面向对象 - 抽象类、接口

抽象类

用abstract关键字来修饰一个类时,这个类就叫抽象类,用abstract关键字来修饰一个方式时,这个方法就是抽象方法。当一个类继承的父类是抽象类的话,需要我们把抽象类中的所有抽象方法全部实现。那为什么要用抽象类呢?当父类的一些方法不能确定时,可以先在抽象类里定义抽象方法。

注意事项

Ⅰ.抽象类不能被实例化

Ⅱ.抽象类不一定要包含abstract方法。

Ⅲ.一旦类包含了abstract方法,则这个类必须声明为abstract

Ⅳ.抽象类不能有主体

实例

 1 package com.beekc.www;
 2 
 3 public class Beekc {
 4     public static void main(String[] args) {
 5         Animal an = new Dog();
 6         an.cry();
 7         an = new Cat();
 8         an.cry();
 9     }
10 }
11 
12 //抽象类
13 abstract class Animal
14 {
15     private int age;
16     private String name;
17     //抽象方法
18     abstract public void cry();
19 
20 }
21 
22 class Cat extends Animal
23 {
24     //继承了Animal,一点要实现cry方法
25     public void cry()
26     {
27         System.out.println("猫猫,喵喵叫~");
28     }
29 }
30 
31 class Dog extends Animal
32 {
33     //继承了Animal,一点要实现cry方法
34     public void cry()
35     {
36         System.out.println("狗狗,汪汪叫~");
37     }
38 }
扫描二维码关注公众号,回复: 9275301 查看本文章

运行结果

接口

接口就是给出一些没有内容的方法,封装到一起,到某个类要使用的时候,在根据具体情况把这些方法写出来。接口是更加抽象的抽象的类,抽象类里的方法可以有方法体,接口里的所有方法都没有方法体。接口体现了程序设计的多态和高内聚低偶合的设计思想。

注意事项

Ⅰ.接口不能被实例化

Ⅱ.接口中所有的方法都不能有主体

Ⅲ.一个类可以实现多个接口

Ⅳ.接口中可以有变量,但变量不能用private和protected修饰

Ⅴ.一个接口不能继承其他的类,但是可以继承别的接口

实例

 1 package com.beekc.www;
 2 
 3 //定义一个叫Usb的接口,用interface关键字
 4 interface Usb
 5 {
 6     int a= 1;
 7     //定义两个方法
 8     public void start();
 9     public void stop();
10 }
11 
12 //相机类继承一个接口,用implements关键字
13 class Camera implements Usb
14 {
15     //继承了接口,一定要Usb接口里的方法
16     public void start()
17     {
18         System.out.println("我是相机,开始工作了!");
19     }
20     public void stop()
21     {
22         System.out.println("我是相机,停止工作了!");
23     }
24 }
25 
26 //手机类继承一个接口,用implements关键字
27 class Phone implements Usb
28 {
29     //继承了接口,一定要Usb接口里的方法
30     public void start()
31     {
32         System.out.println("我是手机,开始工作了!");
33     }
34 
35     public void stop()
36     {
37         System.out.println("我是手机,停止工作了!");
38     }
39 }
40 
41 //计算机
42 class Computer
43 {
44     //开始使用接口
45     public void useUsb(Usb usb)
46     {
47         usb.start();
48         usb.stop();
49     }
50 }
51 
52 
53 public class Beekc {
54     public static void main(String[] args) {
55         System.out.println(Usb.a);
56         Computer computer = new Computer();
57         Camera camera = new Camera();
58         Phone phone = new Phone();
59         computer.useUsb(camera);
60         computer.useUsb(phone);
61     }
62 }

运行结果

猜你喜欢

转载自www.cnblogs.com/beekc/p/12334126.html