老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業提供網站建設、域名注冊、服務器等服務

Java抽象類完整代碼,抽象JAVA

java程序,抽象類實現,求具體代碼

package test;

創新互聯是一家專注于成都網站建設、網站建設與策劃設計,中江網站建設哪家好?創新互聯做網站,專注于網站建設10余年,網設計領域的專業建站公司;建站業務涵蓋:中江等地區。中江做網站價格咨詢:18980820575

/**

*

* @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 抽象類

我復制你的代碼 打印出來的是

王二,學生專業是:計算機科學

沒報錯呢?

那不是報test2錯誤么

求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請設計一個使用抽象類或接口的示例代碼

//接口

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代碼,在其中您將擁有一個帶有一個抽象方法的抽象類。然后將抽象類擴展為兩個具體的子類?

比較基礎,給你個例子的思路:

1、創建抽象動物類:AbstractAnimal.java:public AbstractAnimal{...},其中包含屬性String name;(自行設置getter和setter),包含抽象方法public void walk();

2、創建狗類Dog.java,繼承抽象動物類:public Dog extends AbstractAnimal{...},同時必須重寫行走方法:

@Override

public void walk(){

System.out.println(super.name + "用四條腿走路");

}

3、創建人類People.java,繼承抽象動物類:public Peopleextends AbstractAnimal{...},同時必須重寫行走方法:

@Override

public void walk(){

System.out.println(super.name + "用兩條腿走路");

}

4、編寫測試類

private static void main(String[] args){

AbstractAnimal dog = new God();

dog.setName("來福");

dog.walk();

AbstractAnimal people = new People();

people.setName("張三");

people.walk();

}

java 抽象類是 什么

使用了關鍵詞abstract聲明的類叫作“抽象類”。如果一個類里包含了一個或多個抽象方法,類就必須指定成abstract(抽象)。“抽象方法”,屬于一種不完整的方法,只含有一個聲明,沒有方法主體。

抽象語法編輯

下面是抽象方法聲明時采用的語法:

abstract void f();

如果從一個抽象類繼承,而且想生成新類型的一個對象,就必須為基礎類中的所有抽象方法提供方法定義。

如果不這樣做(完全可以選擇不做),則衍生類也會是抽象的,而且編譯器會強迫我們用abstract 關鍵字標志那個類的“抽象”本質。

即使不包括任何abstract 方法,亦可將一個類聲明成“抽象類”。如果一個類沒必要擁有任何抽象方法,而且我們想禁止那個類的所有實例,這種能力就會顯得非常有用。

在面向對象的概念中,我們知道所有的對象都是通過類來描繪的,但是反過來卻不是這樣。并不是所有的類都是用來描繪對象的,如果一個類中沒有包含足夠的信息來描繪一個具體的對象,這樣的類就是抽象類。抽象類往往用來表征我們在對問題領域進行分析、設計中得出的抽象概念,是對一系列看上去不同,但是本質上相同的具體概念的抽象。比如:如果我們進行一個圖形編輯軟件的開發,就會發現問題領域存在著圓、三角形這樣一些具體概念,它們是不同的,但是它們又都屬于形狀這樣一個概念,形狀這個概念在問題領域是不存在的,它就是一個抽象概念。正是因為抽象的概念在問題領域沒有對應的具體概念,所以用以表征抽象概念的抽象類是不能夠實例化的。

在面向對象領域,抽象類主要用來進行類型隱藏。我們可以構造出一個固定的一組行為的抽象描述,但是這組行為卻能夠有任意個可能的具體實現方式。這個抽象描述就是抽象類,而這一組任意個可能的具體實現則表現為所有可能的派生類。模塊可以操作一個抽象體。由于模塊依賴于一個固定的抽象體,因此它可以是不允許修改的;同時,通過從這個抽象體派生,也可擴展此模塊的行為功能。熟悉OCP的讀者一定知道,為了能夠實現面向對象設計的一個最核心的原則OCP(Open-Closed Principle),抽象類是其中的關鍵所在。

2對比接口編輯

語法定義層

在abstract class方式中,Demo可以有自己的數據成員,也可以有非abstract的成員方法,而在interface方式的實現中,Demo只能夠有靜態的不能被修改的數據成員(也就是必須是static final的,不過在interface中一般不定義數據成員),所有的成員方法都是abstract的。

編程層面

abstract class在Java語言中表示的是一種繼承關系,一個類只能使用一次繼承關系。但是,一個類卻可以實現多個interface。

設計理念層面

abstract class在Java語言中體現了一種繼承關系,要想使得繼承關系合理,父類和派生類之間必須存在"is a"關系,即父類和派生類在概念本質上應該是相同的。 對于interface 來說則不然,并不要求interface的實現者和interface定義在概念本質上是一致的,僅僅是實現了interface定義的契約(功能)而已。

四、抽象類的示例代碼

//: interfaces/music4/Music4.java

// Abstract classes and methods.

/* 抽象類的功能

* 使類的抽象性明確起來

*

*/

// 以下是 抽象類 的示例

package interfaces.music4;

import pets.Pet;

import polymorphism.music.Note;

import static net.mindview.util.Print.*;

/* 1. 抽象方法 abstract void f(); 抽象方法不能包含有任何方法的BODY 。

* 2. 如果一個類包含1個或者多個抽象方法, 則該類必須限定為抽象的。

* 需要在前面指定 abstract 關鍵字。

* (1)抽象類不能被實例化

* (2)包含抽象方法的類,必須標識 abstract

* 3. 如果從一個抽象類繼承, 必須對所有抽象方法進行覆蓋 , 否則導出類也是抽象的

* 4. 也可以考慮創建沒有任何抽象方法的抽象類 。

*

*/

abstract class Instrument {

// 抽象類中可以有非抽象方法。

private int i; // Storage allocated for each

public abstract void play(Note n);

public String what() { return "Instrument"; }

public abstract void adjust();

}

/*

(2)包含抽象方法的類,必須標識 abstract, 否則編譯器會報錯

class abc

{

public abstract void Demo();

}*/

class Wind extends Instrument {

public void play(Note n) {

print("Wind.play() " + n);

}

public String what() { return "Wind"; }

public void adjust() {}

}

class Percussion extends Instrument {

public void play(Note n) {

print("Percussion.play() " + n);

}

public String what() { return "Percussion"; }

public void adjust() {}

}

class Stringed extends Instrument {

public void play(Note n) {

print("Stringed.play() " + n);

}

public String what() { return "Stringed"; }

public void adjust() {}

}

class Brass extends Wind {

public void play(Note n) {

print("Brass.play() " + n);

}

public void adjust() { print("Brass.adjust()"); }

}

class Woodwind extends Wind {

public void play(Note n) {

print("Woodwind.play() " + n);

}

public String what() { return "Woodwind"; }

}

class TestAbsExt extends Instrument

{

public void play( Note n ) {

print ("TestAbsExt.play()" + n);

}

public String what()

{

return "TestAbsExt";

}

public void adjust()

{

}

}

// 不含任何抽象方法的抽象類

abstract class AbsClass

{

public void f1() {

print("f1()");

}

public void f2() {

print("f2()");

}

}

public class Music4 {

// Doesn't care about type, so new types

// added to the system still work right:

static void tune(Instrument i) {

// ...

i.play(Note.MIDDLE_C);

}

static void tuneAll(Instrument[] e) {

for(Instrument i : e)

tune(i);

}

public static void main(String[] args) {

// !抽象類不能被實例化

// 若使用以下語句 , 將會收到報錯。

/* Exception in thread "main" java.lang.Error: Unresolved compilation problem:

Instructment cannot be resolved to a type

*/

// ! new Instructment();

// Upcasting during addition to the array:

Instrument[] orchestra = {

new Wind(),

new Percussion(),

new Stringed(),

new Brass(),

new Woodwind()

};

tuneAll(orchestra);

}

} /* Output:

Wind.play() MIDDLE_C

Percussion.play() MIDDLE_C

Stringed.play() MIDDLE_C

Brass.play() MIDDLE_C

Woodwind.play() MIDDLE_C

*///:~

/*

* 抽象方法不能包含有任何方法的BODY 。

*/

/*

abstract class RodentAbs extends Pet {

abstract public Rodent(String name) { super(name); }

abstract public Rodent() { super(); }

} ///:~

*/


網頁標題:Java抽象類完整代碼,抽象JAVA
分享地址:http://www.xueling.net.cn/article/dsiedgs.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 天天激情综合 | 国产网站色 | 不卡av中文字幕手机看 | 夜夜夜夜夜夜爽噜噜噜噜噜噜 | 国产人成看黄久久久久久久久 | 乱子伦一区二区三区 | 人妻系列,一区二区三区 | 超级碰碰青草免费视频 | 干片网在线观看 | 噼里啪啦动漫在线观看免费 | 日本老女人视频 | 17CC网黑料爆料一区二区三区 | 久久亚洲精品中文字幕无码 | 超碰在线资源 | 欧美高清一区三区在线专区 | 色一情一乱一伦一区二区三欧美 | 久久久久香蕉国产线看观看伊 | 最近2019中文字幕第二页 | 少妇人妻无码永久免费视频 | 999成人免费视频 | 亚洲欧美国产国产综合一区 | xxxwww免费视频 | 91久久久爱一区二区三区 | 天天看天天做天天爽 | 被男人嗦过奶头一下就变大了 | 国产欧美日韩亚洲 | 久久精品日韩一区二区三区 | 成人AV综合在线网站 | 亚洲欧洲国产精品久久 | 欧美黑人巨大久久久精品一区小蓝 | 欧美性猛交xxxx乱大交喷浆 | 免费a级毛片无码a∨ | 综合激情丁香久久狠狠 | 久久激情五月 | 亚洲视频免费播放 | 九一视频免费看 | 成人做爰高潮片免费看视频 | 日韩精品无码一区二区 | 日韩精品免费在线观看视频 | 浪潮av色综合久久天堂 | 亚洲精品拍拍央视网出文 |