java -- 抽象 接口
来源:互联网 发布:linux网卡配置生效 编辑:程序博客网 时间:2024/06/05 16:03
一、 抽象
- 抽象:抽象就是看不懂的
- 抽象使用的关键词 abstract
- 1.abstract修饰类 抽象类
- 2.abstract修饰方法 抽象方法
- 3.抽象法国法 没有实现部分
- 注意:抽象类中的抽象方法 强制子类去重写抽象方法
- 注意:抽象类不能实例化对象(创建对象)
- 创建对象的方式:比照多态来创建
-
抽象类注意: - 1.成员变量:可以有变量,也可以有常量
- 2.成员方法:可以有抽象方法,也可以有成员方法
- 3.构造方法:有
- 注意:抽象类中不一定有抽象方法,但是抽象方法一定存在抽象类中
注意:抽象类的子类 必须重写抽象父类的所有抽象方法
public static void main(String[] args) {// 父类引用指向子类的对象Animal animal = new Cat();animal.eat();animal.name();}}abstract class Animal{final int i = 10;public Animal() {System.out.println("我是父类的构造方法");}public abstract void eat();public void name() {System.out.println("我是成员方法");}}class Cat extends Animal{ @Override public void eat() { System.out.println(i); System.out.println("猫吃鱼"); }}
打印结果
1.一个类没有抽象方法 可不可以定义为抽象类 如果可以那么作用是什么?
作用:禁止创建抽象类的对象出来 只能使用其子类
2.abstract 与那些关键字不能共存
abstract 和 static
static 修饰方法用类名去调用 abstract 修饰抽象方法没有方法的实现,没有实现部分的方法 只能是方法的声明 不能直接调用 所以不能共存
abstract 和 final
final修饰方法 不能被重写 abstract修饰方法就是为了子类重写方法所以不能共存
private 和 abstract
private 修饰方法 只能本类访问,子类访问不到,谈不上重写,所以不能够共存
二、 接口:
狭义的接口:interface 关键词修饰的,叫做接口
广义的接口:规则
如何定义接口:interface 接口名{}
接口的特点:
1.接口中只能声明抽象方法
2.如果你不写 public abstract,关键词修饰,接口中声明方法,那么系统会帮你默认添加上
(书写建议:最好写上默认的修饰词)
3.接口也不能实例化对象(谁要用接口,谁就要实现接口中的方法),可以使用多态方式创建实现类的对象
4.接口的实现 使用 implement 关键字
接口注意:
1.成员变量:有但是只能有常量 public static final 常量名 = 初值;当你在接口中声明变量是 系统默认会是public static final修饰
2.成员方法:没有成员方法(只有抽象方法)
3.构造方法:没有构造方法
类与类的关系:继承关系,并且是单继承 和 多继承
类和接口的关系:实现关系,可以单实现,也可以多实现(接口相当于 干爹 继承相当于亲爹)
接口和接口的关系:可以单继承,也可以多继承
public class Demo03 {public static void main(String[] args) { InterA iA = new Person(); iA.print();}}interface InterA{public static final int num = 10;public abstract void print();}class Person implements InterA{// 实现这个方法@Overridepublic void print() { System.out.println("我是人类的打印");}}// 类与接口的联系interface InterX{public abstract void fun();}interface InterY{public abstract void fun1();}interface InterZ extends InterX, InterY{}class Car implements InterX, InterY{@Overridepublic void fun() { System.out.println("我是fun");}@Overridepublic void fun1() { System.out.println("我是fun1");}}
总结:
接口更像是抽象类的另一种形式,因为接口只可以有抽象方法,没有抽象类可以实现其他部分的方法,但是接口的优势在与可以多继承,在实际编程设计中抽象类中要考虑到子类的所有共同属性和方法,但是接口就不需要,因为接口是针对一种规则的描述,在同一类中实现多个接口,在设计阶段大大降低了难度
抽象类与接口的异同点:
他们的共同点:
1) 都不能被实例化
2) 都能包含抽象的方法,这些抽象的方法用于描述类具备的功能,但是不给提供具体的实现。他们的不同点
1) 在抽象类中可以写非抽象的方法,从而避免在子类中重复书写他们,这样可以提高代码的复用性,这是抽象类的优势;接口中只能有抽象的方法。
2) 一个类只能继承一个直接父类,这个父类可以是具体的类也可是抽象类;但是一个类可以实现多个接口(可以多继承)
- java 抽象类 接口
- JAVA 抽象与接口
- java/接口,抽象类
- java 抽象类 接口
- JAVA 抽象、接口
- Java - 抽象类 - 接口
- Java接口、抽象类
- java--继承,抽象,接口
- java抽象与接口
- java抽象与接口
- Java 抽象类,接口
- JAVA中的“抽象接口”
- JAVA中的“抽象接口”
- java抽象类,接口
- JAVA中的“抽象接口”
- java 抽象类 接口
- java接口、抽象类
- JAVA中的“抽象接口”
- jQuery写简单模态框
- mybatis 中 or 的使用
- [JSON教程]Object和JSON互转
- 什么是Spring,IOC是什么?DI是什么?
- 《数字技术》连载5: 第2章 数字器件 第0节 概述
- java -- 抽象 接口
- crontab初始化
- Mysql之主从复制-yellowcong
- 微信支付
- JAVA面向对象的基础知识快速通过---自学笔记(一)
- Jdk动态代理
- 购物车代码
- glitch free 时钟切换逻辑的实现
- SpringBoot连接数据库JDBCTemplate方式