网站建设资讯

NEWS

网站建设资讯

实现抽象类的java代码 实现抽象类的java代码是什么

求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编程一直以来都是互联网上使用比较广泛的一种编程语言,所以我们今天就一起来了解一下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是否为空。

java请设计一个使用抽象类或接口的示例代码

//接口

public interface BankCard {

public void norm();

}

//工商银行实现类

public class ICBCBankCard implements BankCard {

@Override

public void norm() {

// TODO 银行规范

}

public void saveMoney(int money){

//TODO 执行存钱动作 

}

public void transfer(String account,int money){

//TODO 执行转账 动作

}

}

//交通银行实现类

public class CommunicationsBankCard implements BankCard {

@Override

public void norm() {

// TODO 银行规范

}

public void saveMoney(int money){

//TODO 执行存钱动作 

}

public void transfer(String account,int money){

//TODO 执行转账 动作

}

}

上面的例子只是申明了通用的规范,如果想让实现类都能实现存钱和转账功能,可以在接口里面声明这两个方法,写一个通用的实现类,实现这些方法,然后具体的子类继承该通用类,这样可以直接继承父类方法,如果不同的银行具体实现不同,可以复写父类中的两个方法。

java程序,抽象类实现,求具体代码

package test;

/**

*

* @author JinnL

*父类抽象类

*/

public abstract class Car {

//转弯

abstract void turn();

//启动

abstract void start();

void what(){

System.out.println("this is "+this.getClass().getSimpleName());

}

public static void main(String[] args) {

/**

* 方法入口

*/

Car[] cars ={new Bicycle(),new Automobile(),new GasAutomobile(),new DieselAutomobile()};

for (Car car : cars) {

car.start();

}

}

}

class Bicycle extends Car{

@Override

void turn() {

System.out.println("this is "+this.getClass().getSimpleName());

}

@Override

void start() {

System.out.println("this is "+this.getClass().getSimpleName());

}

void what(){

}

}

class Automobile extends Car{

@Override

void turn() {

System.out.println("this is "+this.getClass().getSimpleName());

}

@Override

void start() {

System.out.println("this is "+this.getClass().getSimpleName());

}

}

class GasAutomobile extends Automobile{

//重写start turn

@Override

void turn() {

System.out.println("this is "+this.getClass().getSimpleName());

}

@Override

void start() {

System.out.println("this is "+this.getClass().getSimpleName());

}

}

class DieselAutomobile extends Automobile{

@Override

void start() {

System.out.println("this is "+this.getClass().getSimpleName());

}

void what(){

System.out.println("this is "+this.getClass().getSimpleName());

}

}


本文标题:实现抽象类的java代码 实现抽象类的java代码是什么
当前路径:http://njwzjz.com/article/doppghh.html