Java 抽象,接口
2013-07-03 16:16
134 查看
抽象:使用abstract关键字所修饰的类
抽象类无法实例化
使用abstract关键之修饰的方法叫做抽象方法
如果一个雷包含了抽象方法,那这个类一定是抽象类
如果一个类是抽象类,那么这个类可以包含具体的方法
接口
java语言不支持一个类有多个直接的父类,但可以用implements 实现多个接口,间接地实现多继承。
接口特征
1)接口的成员币拿来那个默认都是public static final 类型,必须被显示初始化
2)接口的方法默认为public,abstract类型,没有方法体,不能被实例化
3)只能包含Public, static,final类型的成员和public,abstract类型的成员方法。
4)接口没有构造方法,不能被实例化
5)一个接口不能实现另外一个接口,但可以继承多个其他接口
6)接口必须通过类来实现他的抽象方法
7)当类实现了某个java接口时,他必须事先接口中的所有抽象方法
8)不可以创建接口实例
9)一个类可以集成一个父类多个接口
10)相同的功能可以抽象出一个接口类型
11)接口时构建松耦软件系统的重要法宝,接口描述系统对外提供的所有服务,因此是public类型
抽象类和接口的差别
相同点:
代表系统的抽象层---松耦合
都不能被实例化
否包含抽象方法,这些用于描述系统鞥提供哪些服务,三不能具体实现
不同点
抽象类中部分方法提供默认实现,因为允许加入具体方法,不会对子类有影响
接口只包含抽象方法,不可随意改动,会影响实现类
一个类只能继承一个直接的父类,这个服类可以是抽象类,但一个类可以实现多个接口
基本类的定义:
public class Fruit {
public void price() {
System.out.println("水果价格");
}
public void weight() {
System.out.println("水果重量");
}
}
抽象类的定义:
public abstract class Fruit {
public void price() {
System.out.println("水果价格");
}
public abstract void weight();
}
接口类的定义:
public interface Fruit {
public void price();
public void weight() ;
}
从上面我们可以看出接口就是抽象类的升级版,由于该类的方法全是抽象方法,所以把abstract换成interface。而接口的方法必须由子类才能实现。
继承
继承基本类,可以继承父类的方法,也可以从些,也可以扩充。下面是实现接口基本类的类:
public class Apple extends Fruit {
}
该类中就有Fruit基本类中的两个方法:price()和weight();
继承抽象类,必须实现抽象类的抽象方法,可以修改父类的方法,和添加方法。下面是继承抽象类的类:
public class Apple extends Fruit {
@Override
public void weight() {
System.out.println("水果重量");
}
}
该类继承类Fruit的price()方法,同时实现了Fruit抽象类的weight()方法。
继承接口类(也就实现接口),必须实现接口类的所有的抽象类和添加了。下面是继承接口的类:
public class Aple implements Fruit {
@Override
public void price() {
System.out.println("水果价格");
}
@Override
public void weight() {
System.out.println("水果重量");
}
}
该类是实现Fruit接口的所以抽象方法。
Java只支持单继承(继承基本类和抽象类),但是我们可以用接口来实现(多继承接口来实现)
如:public class Apple extends Fruit implements Fruit1, Fruit2{}
一般我们继承基本类和抽象类用extends关键字,实现接口类的继承用implements关键字。其实继承是很简单的,可以就是没有弄清这两个关键字,当我们弄清楚也就是比较简单的。
接口也可以继承接口如:public interface Fruit1 extends Fruit {}这是接口中的多重继承,同理抽象类和基本类也同理。如果我们把基本类添加final修饰,也就定义该类不被继承,该类不能作为父类。同时基本类的方法可以用public 、private、proptected来修饰方法,用final来阻止继承该方法。
抽象类无法实例化
使用abstract关键之修饰的方法叫做抽象方法
如果一个雷包含了抽象方法,那这个类一定是抽象类
如果一个类是抽象类,那么这个类可以包含具体的方法
接口
java语言不支持一个类有多个直接的父类,但可以用implements 实现多个接口,间接地实现多继承。
接口特征
1)接口的成员币拿来那个默认都是public static final 类型,必须被显示初始化
2)接口的方法默认为public,abstract类型,没有方法体,不能被实例化
3)只能包含Public, static,final类型的成员和public,abstract类型的成员方法。
4)接口没有构造方法,不能被实例化
5)一个接口不能实现另外一个接口,但可以继承多个其他接口
6)接口必须通过类来实现他的抽象方法
7)当类实现了某个java接口时,他必须事先接口中的所有抽象方法
8)不可以创建接口实例
9)一个类可以集成一个父类多个接口
10)相同的功能可以抽象出一个接口类型
11)接口时构建松耦软件系统的重要法宝,接口描述系统对外提供的所有服务,因此是public类型
抽象类和接口的差别
相同点:
代表系统的抽象层---松耦合
都不能被实例化
否包含抽象方法,这些用于描述系统鞥提供哪些服务,三不能具体实现
不同点
抽象类中部分方法提供默认实现,因为允许加入具体方法,不会对子类有影响
接口只包含抽象方法,不可随意改动,会影响实现类
一个类只能继承一个直接的父类,这个服类可以是抽象类,但一个类可以实现多个接口
基本类的定义:
public class Fruit {
public void price() {
System.out.println("水果价格");
}
public void weight() {
System.out.println("水果重量");
}
}
抽象类的定义:
public abstract class Fruit {
public void price() {
System.out.println("水果价格");
}
public abstract void weight();
}
接口类的定义:
public interface Fruit {
public void price();
public void weight() ;
}
从上面我们可以看出接口就是抽象类的升级版,由于该类的方法全是抽象方法,所以把abstract换成interface。而接口的方法必须由子类才能实现。
继承
继承基本类,可以继承父类的方法,也可以从些,也可以扩充。下面是实现接口基本类的类:
public class Apple extends Fruit {
}
该类中就有Fruit基本类中的两个方法:price()和weight();
继承抽象类,必须实现抽象类的抽象方法,可以修改父类的方法,和添加方法。下面是继承抽象类的类:
public class Apple extends Fruit {
@Override
public void weight() {
System.out.println("水果重量");
}
}
该类继承类Fruit的price()方法,同时实现了Fruit抽象类的weight()方法。
继承接口类(也就实现接口),必须实现接口类的所有的抽象类和添加了。下面是继承接口的类:
public class Aple implements Fruit {
@Override
public void price() {
System.out.println("水果价格");
}
@Override
public void weight() {
System.out.println("水果重量");
}
}
该类是实现Fruit接口的所以抽象方法。
Java只支持单继承(继承基本类和抽象类),但是我们可以用接口来实现(多继承接口来实现)
如:public class Apple extends Fruit implements Fruit1, Fruit2{}
一般我们继承基本类和抽象类用extends关键字,实现接口类的继承用implements关键字。其实继承是很简单的,可以就是没有弄清这两个关键字,当我们弄清楚也就是比较简单的。
接口也可以继承接口如:public interface Fruit1 extends Fruit {}这是接口中的多重继承,同理抽象类和基本类也同理。如果我们把基本类添加final修饰,也就定义该类不被继承,该类不能作为父类。同时基本类的方法可以用public 、private、proptected来修饰方法,用final来阻止继承该方法。
相关文章推荐
- java 面向对象 接口 抽象
- java面向对象思想之接口、抽象
- Java的抽象和接口实验报告
- JAVA基础 —— 继承、抽象、接口
- java 笔记------instanceof、抽象、接口的应用
- Java中抽象和接口的联系与区别
- java面试之抽象接口、线程、设计模式、mvc
- 基于Java的开源的模型驱动转换器和抽象用户接口标识语言6.1发布
- Java复习:继承、抽象、接口
- Java之抽象(abstract)类、接口(interface)的用法总结
- Java基础---继承、抽象、接口
- JAVA中的“抽象接口”
- 黑马程序员-java基础 继承、抽象、接口
- 基于Java的开源的模型驱动转换器和抽象用户接口标识语言6.1发布
- Java 比抽象类还要抽象的类-接口interface
- JAVA常用基础知识点[继承,抽象,接口,静态,枚举,反射,泛型,多线程...]
- JAVA中的“抽象接口”
- JAVA中的“抽象接口”
- Java 的抽象特性:抽象类与接口深度解析
- JAVA 抽象类 抽象方法 接口