
正文
抽象接口java代码 java抽象类实现接口
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
java编程!谢谢!编一个应用抽象类程序,并将抽象类改为接口。
设计抽象类并实现抽象类中抽象方法的子类
抽象类:
Person_abstract
public
abstract
class
Person_abstract
{
public
abstract
void
eat();
public
void
show(){
System.out.println("我是人");
}
}
实现类1:Student_abstract
public
class
Student_abstract
extends
Person_abstract
{
public
void
eat()
{
System.out.println("student
eat!!!");
}
public
void
show(){
System.out.println("我是student");
}
}
实现类2:Teacher_abstract
public
class
Teacher_abstract
extends
Person_abstract
{
public
void
eat()
{
System.out.println("teacher
eat!!!");
}
public
void
show(){
System.out.println("我是teacher");
}
}
--------------------------------------------------分割线----------------------------
抽象类改写为接口,实现相同的功能
接口:Person_Interface
public
interface
Person_Interface
{
public
void
eat();
public
void
show();
}
实现类1:Student_Interface
public
class
Student_Interface
implements
Person_Interface{
public
void
eat()
{
System.out.println("student
eat!!!");
}
public
void
show()
{
System.out.println("我是student");
}
}
实现类2:Teacher_Interface
public
class
Teacher_Interface
implements
Person_Interface{
public
void
eat()
{
System.out.println("teacher
eat!!!");
}
public
void
show()
{
System.out.println("我是teacher");
}
}
---------------------------------分割线-----------------------------
应该ok了吧
一个抽象类,一个接口,都分别写了两个实现类。
相关问答
Q1: 求包含抽象类,接口的java程序
public interface F{
public void prt();
}
public abstract class A{
public abstract void prt1();
public void prt2(){
System.out.println("prt2");
}
}
public class Imp extends abs implements F{
public void prt(){
System.out.println("implement");
}
public void prt1(){
System.out.println("abstract");
}
public static void main(){
Imp imp = new Imp();
imp.prt();
imp.prt1();
imp.prt2();
}
}
Q2: JAVA语言 采用面向对象程序设计思想编写程序计算 n!,要求使用接口 和抽象类实现。急求全部代码
接口抽象接口java代码:FactorialImp
抽象类抽象接口java代码:FactorialAbs
实现计算阶乘n!的类抽象接口java代码:Fatorial
代码:
/**
*
* 阶乘计算器
*
* 接口
*/
public interface FactorialImp {
// 计算阶乘n!的值
long factorial(int n);
}
/**
*
* 阶乘计算器
*
* 抽象类 继承 FactorialImp
*/
public abstract class FactorialAbs implements FactorialImp {
/**
* 实现计算阶乘n!的值的方法
*/
public long factorial(int n) {
return multiplicationCount(n, n - 1);
}
/**
* 增加抽象方法--计算两数相乘
*
* @param param1Int
* @param param2Int
* @return 两数相乘的积
*/
abstract long multiplicationCount(long param1Int, long param2Int);
}
/**
* 实现阶乘计算器类
*
*/
public class Fatorial extends FactorialAbs {
@Override
long multiplicationCount(long param1Int, long param2Int) {
if (param2Int == 1) {
return param1Int;
} else {
return multiplicationCount(param1Int * param2Int, param2Int - 1);
}
}
}
/**
* 测试类
*
*/
public class Test {
public static void main(String[] args) {
Fatorial localFatorial = new Fatorial();
System.out.println("100! = " + localFatorial.factorial(10));
}
}
Q3: java编程抽象类技术如何实现?
java编程一直以来都是互联网上使用比较广泛的一种编程语言,所以我们今天就一起来了解一下java编程中的抽象类是如何来实现的,希望通过对本文的阅读,大家能够对java编程技术有更深刻的认识,下面昆明电脑培训就开始今天的主要内容吧。
AbstractMap抽象类实现了一些简单且通用的方法,本身并不难。但在这个抽象类中有两个方法非常值得关注,keySet和values方法源码的实现可以说是教科书式的典范。
抽象类通常作为一种骨架实现,为各自子类实现公共的方法。上一篇我们讲解了Map接口,此篇对AbstractMap抽象类进行剖析研究。
Java中Map类型的数据结构有相当多,AbstractMap作为它们的骨架实现实现了Map接口部分方法,也就是说为它的子类各种Map提供了公共的方法,没有实现的方法各种Map可能有所不同。
抽象类不能通过new关键字直接创建抽象类的实例,但它可以有构造方法。AbstractMap提供了一个protected修饰的无参构造方法,意味着只有它的子类才能访问(当然它本身就是一个抽象类,其他类也不能直接对其实例化),也就是说只有它的子类才能调用这个无参的构造方法。
在Map接口中其内部定义了一个Entry接口,这个接口是Map映射的内部实现用于维护一个key-value键值对,key-value存储在这个Map.Entry中。AbstractMap对这个内部接口进行了实现,一共有两个:一个是可变的SimpleEntry和一个是不可变的SimpleImmutableEntry。
publicstaticclassSimpleEntryimplementsEntry,java.io.Serializable
实现了Map.Entry接口,并且实现了Serializable(可被序列化)。
它的方法比较简单都是取值存值的操作,对于key值的定义是一个final修饰意味着是一个不可变的引用。另外其setValue方法稍微特殊,存入value值返回的并不是存入的值,而是返回的以前的旧值。需要重点学习的是它重写的equals和hashCode方法。
publicstaticclassSimpleImmutableEntryimplementsEntry,java.io.SerializableSimpleImmutableEntry
定义为不可变的Entry,其实是事实不可变,因为它不提供setValue方法,在多个线程同时访问时自然不能通过setValue方法进行修改。它相比于SimpleEntry其key和value成员变量都被定义为了final类型。调用setValue方法将会抛出UnsupportedOperationException异常。
它的equals和hashCode方法和SimpleEntry一致。
接下来查看AbstractMap抽象类实现了哪些Map接口中的方法。
publicintsize()
Map中定义了一个entrySet方法,返回的是Map.Entry的Set集合,直接调用Set集合的size方法即是Map的大小。
publicbooleanisEmpty()
调用上面的size方法,等于0即为空。
publicbooleancontainsKey(Objectkey)
这个方法的实现较为简单,通过调用entrySet方法获取Set集合的迭代器遍历Map.Entry,与参数key比较。Map可以存储为null的key值,由于key=null在Map中存储比较特殊(不能计算hashCode值),所以在这里也做了判断参数key是否为空。
Q4: 采用抽象或接口方式设计一个面向学生的Java课程学分管理程序?
下面是采用抽象类方式设计一个面向学生的Java课程学分管理程序的示例代码:
// 定义抽象类
Student
public abstract class Student {
// 学生姓名
protected String name;
// 学生学号
protected String studentNumber;
// 学生已修课程学分总和
protected double totalCredits;
// 构造方法
public Student(String name, String studentNumber) {
this.name = name;
this.studentNumber = studentNumber;
this.totalCredits = 0;
}
// 抽象方法抽象接口java代码,用于计算学生的当前学分绩点
public abstract double calculateGPA();
// 普通方法抽象接口java代码,用于增加学生的已修课程学分
public void addCredits(double credits) {
this.totalCredits += credits;
}
// 普通方法,用于获取学生的姓名
public String getName() {
return this.name;
}
// 普通方法,用于获取学生的学号
public String getStudentNumber() {
return this.studentNumber;
}
// 普通方法,用于获取学生的已修课程学分总和
public double getTotalCredits() {
return this.totalCredits;
}
}
下面是采用接口方式设计一个面向学生的Java课程学分管理程序的示例代码:
// 定义接口Student
public interface Student {
// 学生姓名
String name = "";
// 学生学号
String studentNumber = "";
// 学生已修课程学分总和
double totalCredits = 0;
// 抽象方法,用于计算学生的当前学分绩点
double calculateGPA();
// 抽象方法,用于增加学生的已修课程学分
void addCredits(double credits);
//抽象方法,用于获取学生的姓名
String getName();
// 抽象方法,用于获取学生的学号
String getStudentNumber();
// 抽象方法,用于获取学生的已修课程学分总和
double getTotalCredits();
}
在上面的代码中,抽象接口java代码我们使用抽象接口java代码了抽象类和接口两种方式来设计学生的Java课程学分管理程序。抽象类的方式可以在类中包含普通的成员变量和方法,而接口的方式则只能包含抽象方法。根据需要,可以选择使用抽象类或接口来设计学生的Java课程学分管理程序。
希望这对抽象接口java代码你有帮助!望采纳!
Q5: 求JAVA代码~~~~~~~~~~:编写一个应用抽象类的程序。
//抽象的形状类
abstract class Shape{
abstract double getArea(); //抽象的求面积方法
}
//矩形类
class Rectangle extends Shape{
protected double width;
protected double height;
public Rectangle(double width, double height){
this.width = width;
this.height = height;
}
@Override
double getArea() { //实现父类的方法
return this.width * this.height;
}
}
//椭圆类
class Ellipse extends Shape{
protected double a;
protected double b;
public Ellipse(double a, double b){
this.a = a;
this.b = b;
}
@Override
double getArea() {
return Math.PI * this.a * this.b;
}
}
public class TestAbstract {
public static void main(String[] args) {
Shape s;
s = new Rectangle(3, 4);
System.out.println("矩形的面积 : " + s.getArea());
s = new Ellipse(4, 3);
System.out.println("椭圆的面积 : " + s.getArea());
}
}
关于抽象接口java代码和java抽象类实现接口的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







