1.Java中的抽象,使用abstract关键字来定义一个类, 此类称为抽象类
语法
|
pulic abstract class A { //抽象方法 修饰符 abstract 返回类型 方法名(参数1, 参数2); } |
- 抽象类是不能实例化, 通过new关键字是不可以创建抽象类的对象
- 抽象方法是没有方法体, 所谓的方法体就是没有左右大括号
- 抽象类在使用过程中需要子类来继承它
- 抽象类中的抽象方法一定会在子类中被重写(override)
- 抽象方法只能定义在抽象类中
2.抽象类为什么会在Java面向对象设计中提出这个语法
好比慈禧太后(抽象类)垂帘听政的效果一样, 所以慈禧太后下面的大臣(子类)就是继承她的思想去实现
3.抽象类举例
1 public abstract class 慈禧太后 { 2 public abstract void 杀无赦(String name); 3 public abstract void 签条约(String name); 4 } 5 6 package com.gxa.day9; 7 8 public abstract class 李鸿章 extends 慈禧太后 { 9 10 @Override 11 public abstract void 杀无赦(String name); 12 13 @Override 14 public void 签条约(String name) { 15 System.out.println("签条约 : " + name); 16 } 17 18 }
1 public class 锦衣卫 extends 李鸿章 { 2 3 @Override 4 public void 杀无赦(String name) { 5 6 } 7 8 }
4.接口
语法:
|
修饰符 interface 接口名字 { 修饰符 数据类型 变量名; 修饰符 返回类型 方法名(参数..); } |
特点:
- 接口中不能定义方法实现, 而抽象类是可以的
- 接口相当于一种多继承的概念
- 实现接口的关键字 implements
- 接口不能通过new关键字来实例化(但是匿名内部类可以实例化接口)
- 接口与接口之间是可以继承的
接口到底有什么好处
- 接口在软件设计中完善整个软件架构的规范(基础性的作用)
- 开放过程中不会出现代码移植的难度,代码也可以统一的管理
浙公网安备 33010602011771号