java的抽象与接口
来源:互联网 发布:淘宝网大毛衣外套 编辑:程序博客网 时间:2024/06/06 10:53
一 java 的 抽象 与 接口
抽象用现实的话说就是看不懂的
抽象使用的关键词:abstract
1 abstract 修饰类 抽象类
2 abstract 修饰方法 抽象方法
3 抽象方法没有实现部分
注意 —– 抽象类的抽象方法干一件事就是强制子类去重写
注意 —– 抽象不能 实例化对象(就是不能用抽象类去创建)
创建子类对象的方式多态来创建
1 一个类没有抽象方法 可不可以 定义为 抽象类 如过可以那么作用是什么
作用 禁止创建抽象类的对象 只能使用此子类
2 abstract 能不能与那些关键字共存
abstract 和 static
static 修饰方法用类名去调用
abstract 修饰方法没有方法去实现 没有实现的方法 是方法的声明
abstract 和 final
final 修饰方法不能被重写
abstract 修饰就是为了让子类重写
所以不能共存
private 和 abstract
private 修饰方法 只能本类访问 子类访问不到 谈不上 重写方法
抽象类注意:
1 成员变量 可以有变量 也可以有常量
2 成员方法 可以有抽象方法 也可以有成员方法
3 构造方法 有
注意 抽象类不一定有抽象方法 但是抽象方法一定在抽象类中
抽象类的子类必须重写父亲的抽象类
public class Demo1 { public static void main(String[] args) { //Aniaml animal = new Animal(); //父类的指针指向纸箱子类的对象 Animal animal = new Cat(); animal.Eat(); animal.fun(); Animal.fun(); }}/** * 动物类 吃 * 猫吃鱼 */ abstract class Animal{ int number = 10; //final int number = 10; //抽象方法 public abstract void Eat() ; public Animal() { System.out.println("我是父类的构造方法"); } public static void fun() { System.out.println("我是成员方法"); }} class Cat extends Animal{ public Cat() { // TODO Auto-generated constructor stub super(); } @Override public void Eat() { System.out.println(number); // TODO Auto-generated method stub System.out.println("猫吃鱼"); }}
二 接口
接口
1 狭义的接口:interface关键词修饰的 叫做接口
2 广义的接口:规则
如何定义一个接口
interface+接口名{}
接口的特点
1 接口中只能申明抽象方法
2 如果你不写 public abstract接口申明方法,系统会默认将他填上
所以最好写上默认的修饰词使用的抽象方法
接口也不能实例化对象:谁要用接口,谁就去实现接口的方法
可以使用多态的方式来实现类的对象
(接口相当于干爹 继承相当于亲爹)
接口的实现 使用 implements (实现)关键字
接口注意
成员变量 —– 可以有,但是只能是一个常量(public static final )
当你在接口申明变量时 系统会默认是final public static
书写建议:写熟了再说
成员方法 —– 只有抽象方法 , 没有成员方法
构造方法 —– 没有构造方法(他不是一个类)
类和类的关系
类和类的关系 继承关系 单继承 和 多继承
类和接口的关系
类和接口的关系是实现的关系 可以但实现也可以多实现(接口像干爹)
接口和接口的关系
单继承 也可以 多继承
public class Demo03 { public static void main(String[] args) { // TODO Auto-generated method stub //interA a = new interA() ; interA A = new Person(); A.print(); System.out.println(interA.number); interX X = new Car(); X.fun(); }}interface interA{ public static final int number = 10; //int number = 10; //public void fun(){}; //public interA() {}; //public int a = 12; public abstract void print(); // print() ;}class Person implements interA{ //实现 public void print() { System.out.println(number); System.out.println("我是人类的打印"); }}interface interX{ public abstract void fun();}interface InterY{ public abstract void fun1();}class Car implements interX , InterY{ public void fun() { System.out.println("我是fun"); } public void fun1() { System.out.println("我是fun1"); }}interface interZ extends InterY , interX{}
- java的抽象与接口
- 抽象类与接口的区别 - [ Java 接口 抽象类 ]
- JAVA 抽象与接口
- java抽象与接口
- java抽象与接口
- Java抽象与接口
- JAVA---抽象与接口
- java 的抽象类与接口
- Java接口与抽象类的比较
- java接口与抽象类的区别
- java 抽象类与接口的区别
- java 接口与抽象类的差别
- java 抽象类与接口的区别
- Java抽象类与接口的区别
- java 抽象类与接口的区别
- java 抽象类与接口的区别
- java接口与抽象类的区别
- java抽象类与接口的区别
- C++运算符重载
- Linux系统之iscsi
- 统一的分布式数据库和文件系统mongodb,及其用于解决aliyun上做站的存储成本方案
- 对hbase进行增删改查的操作实例
- JDK不同操作系统的FileSystem(Windows&Unix-like)
- java的抽象与接口
- dfs深度优先收搜
- ACM算法入门——二分查找
- C++小练习—找零钱问题
- 免内置mysql和客户端媒体的kbengine demo,kbengine通用版
- HDU-4614 Vases and Flowers (线段树+二分)
- Arrays.asList()是个坑
- Java实现get或post请求
- LeetCode 682. Baseball Game (Easy)