b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

java中抽象类,抽象方法,接口和实现接口示例的详细说明

电脑杂谈  发布时间:2020-04-16 20:20:52  来源:网络整理

抽象类实现接口_抽象类实现接口_idea 创建接口实现类

前言

这里不详细解释Java中的抽象类抽象方法接口和实现接口等特定概念. 书籍上有很多解释,主要是我很懒. 以下是一个说明本质的示例. 主要要点是您是否可以练习绝世武术,走上通往国王的道路抽象类实现接口,这取决于您自己(不要误会我的意思,我只是在指自己)

用界面实现一个简单的计算器

1. 使用界面作为参数并编写计算器以完成+-* /计算

(1)定义一个接口Compute包含一个方法int computer(int n,int m);

(2)设计四个类来实现此接口并完成+-* /操作

(3)使用以下方法设计类UseCompute: public void useCom(计算com,整数1,整数2)

抽象类实现接口_idea 创建接口实现类_抽象类实现接口

此方法要求:

* 1.使用传递的对象来调用计算机方法以完成操作

* 2.输出操作结果

(4)设计一个测试类,并在UseCompute中调用useCom方法以完成+-* /计算

//父类.并且使用用接口
package cn.yjlblog.wwww;
public interface Compute {
 int computer(int n,int m);//抽象方法,胜率abstract ,public
}

//子类add 实现加法运算
package cn.yjlblog.wwww;
public class add implements Compute{
 @Override //接口的实现类和抽象类的子类是一样的,要想可以使用new 一个对象,就必须对“抽象类”里的方法
   //进行重写
 public int computer(int n, int m) {
  // TODO Auto-generated method stub
  return n+m;
 }
}

package cn.yjlblog.wwww;
//子类subtract 实现减法运算
public class subtract implements Compute{
 @Override
 public int computer(int n, int m) {
  // TODO Auto-generated method stub
  return n-m;
 }
}

抽象类实现接口_抽象类实现接口_idea 创建接口实现类

子类multiplied 实现乘法运算
package cn.yjlblog.wwww;
public class multiplied implements Compute{
 @Override
 public int computer(int n, int m) {
  // TODO Auto-generated method stub
  return n*m;
 }
}

package cn.yjlblog.wwww;
//子类divided 实现整除运算
public class divided implements Compute{
 @Override
 public int computer(int n, int m) {
  // TODO Auto-generated method stub
  return n/m;
 }
}

//应用类UseComepute 用来
package cn.yjlblog.wwww;
public class UseComepute {
 public void useCom(Compute com,int one,int two){
  int x = com.computer(one, two);
  System.out.println("运算结果为:"+x);
 }
}

//测试类Test
package cn.yjlblog.wwww;
public class Test {
 public static void main(String[] args) {
  UseComepute uc = new UseComepute();//应用类生成对象,使用useCome 方法
  int one = 10;
  int two = 20;
  Compute ad = new add();//接口的多态
  Compute sub = new subtract();
  Compute mul= new multiplied();
  Compute div = new divided();
  uc.useCom(ad, one, two);
  uc.useCom(sub, one, two);
  uc.useCom(mul, one, two);
  uc.useCom(div, one, two);
  //哈哈,类的名字忘记大写了
 }
}

为什么要使用抽象类?

在下面的示例中,打印机类被封装为抽象类抽象类实现接口,而打印被定义为抽象类. 当HPPrinter和CannonPrinter想要继承打印机类时,必须重写打印功能. 这样写的优点是每个打印机都有自己的打印方法,这可以防止子类不指定打印方法.

public abstract void Printer() {
public void open() {
system.out.print("打印机开启");
}
public void close() {
system.out.print("打印机关闭");
}
abstract void print(); //把print方法定义为抽象方法
}
public HPPrinter extends Printer {
void print(){ //必须重写抽象方法print() 
system.out.print("惠普打印机开始打印");
};
}
public CanonPrinter extends Printer {
void print(){ //必须重写抽象方法print()
system.out.print("佳能打印机开始打印");
};
}

抽象类实现接口_抽象类实现接口_idea 创建接口实现类

抽象类和接口之间的区别

(1)语法水平

public abstract class People { //关键词abstract,声明该类为抽象类
 void Num();      
 abstract void Name();    //声明该方法为抽象方法
}
 
Interface Person {
  void Num();
  void Name();
} 

在抽象类模式下,抽象类可以具有任意范围的成员数据,也可以具有自己的非抽象方法,

但是在接口模式下,它只能具有静态且不可修改的成员数据(但我们通常在接口中不使用成员数据),并且其所有方法都必须是抽象的.

从某种意义上说,接口是抽象类的化.

对于子类,它只能继承一个抽象类(Java为数据安全性考虑),但是它可以实现多个接口.

idea 创建接口实现类_抽象类实现接口_抽象类实现接口

(2)设计级别

1. 不同级别的抽象

抽象类是类的抽象,而接口是行为的抽象. 抽象类将整个类(包括属性和行为)作为一个整体进行抽象,但是接口对类的各个部分(行为)进行抽象.

2. 跨域不同

抽象类跨越具有相似特征的域,但是接口可以跨越不同的域. 我们知道抽象类从子类中找到公共部分,然后将其概括为抽象类. 子类可以继承父类,但是接口不同. 实现它的子类可以没有共同的关系. 例如,可以使用称为方法的方法将猫和狗抽象为动物抽象类. 鸟类和飞机可以实现Fly界面并具有飞行行为. 在这里,我们不能在同一个父类中共享鸟类和飞机!因此,抽象类体现了继承关系. 为了使继承关系合理,父类和派生类之间必须存在“ is-a”关系,也就是说,父类和派生类的概念应基本相同. 接口不是这种情况. 不需要接口的实现者和接口的定义在概念上本质上是相同的,只需实现定义接口的协定即可.

3. 不同的设计水平

对于抽象类,它是自下而上设计的,首先必须知道子类来抽象父类,并且接口是不同的,它根本不需要知道子类的存在,只需要定义一个规则就足够了,尚不清楚什么子类以及何时实现. 例如,我们这里只有一类猫. 如果将其抽象为动物类,是否设计过度?我们这里必须至少有两个动物类别,猫和狗,我们正在抽象它们的共同点,以形成动物抽象类别!所以抽象类经常被重构!但是界面不同. 例如,Fei,我们根本不知道要实现该Fei接口将要实现什么,如何实现它是未知的. 我们要做的是提前定义Fei的行为接口. 因此,抽象类是从下至上抽象的,而接口是从上至下设计的.

摘要

以上是本文的全部内容,希望本文的内容对大家的学习或工作具有一定的参考价值. 如有任何疑问,可以留言交流,谢谢您对脚本库的支持.


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-177979-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 杨徽之
        杨徽之

        任何工业品都有设计使用寿命

      热点图片
      拼命载入中...