java接口和抽象,java接口定义抽象方法
这篇文章给大家带来了一些java的知识,主要是整理一下接口和抽象类相关的问题。当需要从几个类中派生出一个类,并继承它们所有的属性和方法时,JAVA不需要用接口来实现多重继承。下面就一起来看看吧,希望对你有帮助。
如何解决写爬虫IP受阻的问题?立即使用。
接口
概述
当需要从几个类中派生出一个类,并继承其所有的属性和方法时,JAVA没有多重继承。需要通过接口实现从几个类中提取一些共同的行为特征,它们之间没有is-a关系。也有必要通过接口实现接口。界面的本质是契约。规范
使用
接口中使用接口来定义接口和类,这是两种不同的结构。无法在接口中定义构造函数(因此无法实例化)。implementsJAVA类可以实现多种接口格式:AA类扩展BB接口CC,DD接口可以从interface继承,多继承接口体现多态性公共类UsbTest {
公共静态void main(String[] args) {
Computer com=新计算机();
Flash Flash=new Flash();
com . transfer data(flash);//USB USB=新闪存()
com . transfer data(new Printer());
/*
* U盘开始工作。
*数据传输
* USB闪存驱动器停止工作。
*打印机开始工作。
*数据传输
*打印机完成工作。
*
* */
} }类计算机{
公共void transferData(USB usb){
USB . start();
System.out.println(传输数据);
USB . stop();
} } USB接口
void start();
void stop();}类Flash实现USB{
@覆盖
public void start() {
system . out . println(“u盘开始工作”);
}
@覆盖
公共无效站点(){
System.out.println(U盘完成工作);
} }类打印机实现USB{
@覆盖
public void start() {
System.out.println(“打印机开始工作”);
}
@覆盖
公共无效站点(){
System.out.println(打印机完成工作);
}}JDK8编写为接口中定义的静态方法,只能由实现类的对象通过接口调用,接口中的默认方法可以实现。如果子类(或实现类)继承的父类和实现的接口声明了一个具有相同名称和参数的方法,如果子类没有覆盖这个方法,它调用父类中具有相同名称和参数的公共类JDK8Test
公共静态void main(String[] args) {
SubClass sub=new SubClass();
comparea . methods 1();
sub methods 2();
/*
*对比北京
*比较上海
*/
}}class子类实现CompareA{ }接口CompareA {
公共静态void方法1() {
System.out.println(比较北京);
}
公共默认void methods2() {
System.out.println(比较上海);
}}
代理模式
代理模式是为其他对象提供一个代理来控制对这个对象的访问。实例公共类NetWorkTest {
公共静态void main(String[] args) {
Server Server=new Server();
proxy server proxy server=new proxy server(服务器);//将代理对象放入其中。
proxy server . browse();//调用了代理对象,但结果调用了真实对象的方法。
/*
*检查工作
*真正的服务器访问网络
*/
} }接口网络{
void browse()。}//代理类类服务器实现网络{
@覆盖
公共void browse() {
System.out.println(“真实服务器访问网络”);
} }//代理类class代理服务器实现网络{
专网工作;
公共代理服务器(网络工作){
this.work=work
}
公共作废支票(){
System.out.println(检查作业);
}
@覆盖
公共void browse() {
check();
work . browse();
}}
内部类
JAVA允许一个类A在另一个类B中声明,那么A类是内部类,B类是外部类的分类成员。内部类静态非静态局部内部类方法内部代码块内部构造函数实例化内部类对象公共类InnerClassTest {
公共静态void main(String[] args) {
//实例化静态类Dog
Pseson。狗狗=新Pseson。狗();
dog . eat();
//吃骨头
//实例化非静态类Cat
PSE son P1=new PSE son();
Pseson。Cat Cat=P1 . new Cat();
cat . eat();
//猫吃鱼
} }类Pseson{
字符串名称;
int age
public void eat(){
system . out . println( eat );
}
静态类狗{
字符串名称;
int age
public void eat(){
System.out.println(吃骨头);
}
}
类别Cat{
public void eat(){
System.out.println(猫吃鱼);
}
}}调用外部类结构公共类InnerClassTest {
公共静态void main(String[] args) {
//实例化非静态类Cat
PSE son P1=new PSE son();
Pseson。Cat Cat=P1 . new Cat();
cat . eat();
Cat.display(小花);
/*
*小花
*波斯猫
*人
*/
} }类Pseson{
String name= person
int age
public void eat(){
system . out . println( eat );
}
静态类狗{
字符串名称;
int age
public void eat(){
System.out.println(吃骨头);
}
}
类别Cat{
String name=波斯猫;
public void eat(){
System.out.println(猫吃鱼);
}
公共void显示(字符串名称){
System.out.println(名称);//方法中的名称
system . out . println(this . name);//内部类中的名称
system . out . println(PSE son . this . name);//外部类中的名称
}
}}接口和抽象类一样:不能实例化;两者都包含抽象方法;可以继承的区别:抽象类有构造函数,接口没有构造函数;抽象类只有单一继承,而接口可以继承更多;类extands继承,接口实现实现推荐学习:《java视频教程》以上是JAVA接口和抽象类分析的详细内容,更多请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。