java介面代碼
❶ java介面代碼幫我分析一下
第一個問題:引用介面PrinterFace
第二個問題:多態,提高了代碼的擴展性。
裡面可以傳Person 也可以傳Student
public void run( Person s)
{
p.run();
}
但是你寫成這樣
public void run( Student s)
{
p.run();
}就只能傳Student 而傳不了Person 了。。
❷ 自定義介面的JAVA代碼
三個錯:
1.Chicken 類里的howtoeat方法改howtoEat;
2.Apple類和Orange 放到Fruit 類外面。
3。Chicken 類的構造方法需要給重量參數,因為你只定義了一個構造方法。
我調試的沒問題,改後代碼:
interface Edible{
public String howtoEat();
}
class Animal{
}
class Chicken extends Animal implements Edible,Comparable{
int weight;
public Chicken(int weight){
this.weight=weight;
}
public String howtoEat(){
return "fry it";
}
public int compareTo(Object o){
return weight-((Chicken)o).weight;
}
}
class Tiger extends Animal{
}
abstract class Fruit implements Edible
{}
class Apple extends Fruit {
public String howtoEat(){
return "Make apple cider";
}
class Orange extends Fruit{
public String howtoEat(){
return "Make orange juice";
}
}
}
public class Test{
public static void main(String[] args){
Object[] objects={new Tiger(),new Chicken(10),new Apple()};
for(int i=0;i<objects.length;i++){
showObject(objects[i]);
}
}
public static void showObject(Object object){
if(object instanceof Edible)
System.out.println(((Edible)object).howtoEat());
}
}
❸ java怎麼定義一個介面
java中介面的定義和介面的實現
1.介面的定義
使用interface來定義一個介面。介面定義同類的定義類似,也是分為介面的聲明和介面體,其中介面體由常量定義和方法定義兩部分組成。定義介面的基本格式如下:
[修飾符] interface 介面名 [extends 父介面名列表]{
[public] [static] [final] 常量;
[public] [abstract] 方法;
}
修飾符:可選,用於指定介面的訪問許可權,可選值為public。如果省略則使用默認的訪問許可權。
介面名:必選參數,用於指定介面的名稱,介面名必須是合法的Java標識符。一般情況下,要求首字母大寫。
extends 父介面名列表:可選參數,用於指定要定義的介面繼承於哪個父介面。當使用extends關鍵字時,父介面名為必選參數。
方法:介面中的方法只有定義而沒有被實現。
例如,定義一個用於計算的介面,在該介面中定義了一個常量PI和兩個方法,具體代碼如下:
1 public interface CalInterface
2 {
3 final float PI=3.14159f;//定義用於表示圓周率的常量PI
4 float getArea(float r);//定義一個用於計算面積的方法getArea()
5 float getCircumference(float r);//定義一個用於計算周長的方法getCircumference()
6 }
注意:
與Java的類文件一樣,介面文件的文件名必須與介面名相同。
2.介面的實現
介面在定義後,就可以在類中實現該介面。在類中實現介面可以使用關鍵字implements,其基本格式如下:
[修飾符] class <類名> [extends 父類名] [implements 介面列表]{
}
修飾符:可選參數,用於指定類的訪問許可權,可選值為public、abstract和final。
類名:必選參數,用於指定類的名稱,類名必須是合法的Java標識符。一般情況下,要求首字母大寫。
extends 父類名:可選參數,用於指定要定義的類繼承於哪個父類。當使用extends關鍵字時,父類名為必選參數。
implements 介面列表:可選參數,用於指定該類實現的是哪些介面。當使用implements關鍵字時,介面列表為必選參數。當介面列表中存在多個介面名時,各個介面名之間使用逗號分隔。
在類中實現介面時,方法的名字、返回值類型、參數的個數及類型必須與介面中的完全一致,並且必須實現介面中的所有方法。例如,編寫一個名稱為Cire的類,該類實現5.7.1節中定義的介面Calculate,具體代碼如下:
1 public class Cire implements CalInterface
2 {
3 public float getArea(float r)
4 {
5 float area=PI*r*r;//計算圓面積並賦值給變數area
6 return area;//返回計算後的圓面積
7 }
8 public float getCircumference(float r)
9 {
10 float circumference=2*PI*r; //計算圓周長並賦值給變數circumference
11 return circumference; //返回計算後的圓周長
12 }
13 public static void main(String[] args)
14 {
15 Cire c = new Cire();
16 float f = c.getArea(2.0f);
17 System.out.println(Float.toString(f));
18 }
19 }
在類的繼承中,只能做單重繼承,而實現介面時,一次則可以實現多個介面,每個介面間使用逗號「,」分隔。這時就可能出現常量或方法名沖突的情況,解決該問題時,如果常量沖突,則需要明確指定常量的介面,這可以通過「介面名.常量」實現。如果出現方法沖突時,則只要實現一個方法就可以了。下面通過一個具體的實例詳細介紹以上問題的解決方法。
❹ Java介面的定義與實現
方法的實現是指可以在{}中寫具體的Java代碼,介面只能是以()結尾,
public void tree();//方法的定義
//方法的具體實現
public void tree(){
system.out.println("這是一顆松樹");
}
❺ 下面是一段關於java介面的一段代碼,我看不懂在定義介面方法括弧中為什麼用User user還是用String uName
int、void是指一個方法的返回類型、int指的是返回的類型是整形、比如1或者0,根據介面的定義,1應該表示增加或者更新成功,0表示增加或者更細失敗,return null是指在查詢的時候查詢不到信息,則返回空。String是指一個字元串,String uName是值 根據uName這個參數來查詢用戶信息,
User 應該是一個實體類,User user用於新增或更新用戶信息。if(users[i]==null)用於判斷用戶信息存在與否,不存在則執行添加用戶操作。 if(users[i] !=null && users[i].getuName().equals(uName))同樣是校驗用於信息存不存在,存在則執行查詢或者更新操作。建議買一本java基礎的書籍看看,弄明白基礎概念。
❻ java,介面
Java介面是一系列方法的聲明,是一些方法特徵的集合,一個介面只有方法的特徵沒有方法的實現,因此這些方法可以在不同的地方被不同的類實現,而這些實現可以具有不同的行為(功能)。
介面作用如下:
1、豐富Java面向對象的思想:在Java語言中, abstract class 和interface 是支持抽象類定義的兩種機制。正是由於這兩種機制的存在,才賦予了Java強大的面向對象能力。
2、提供簡單、規范性:如果一個項目比較龐大,那麼就需要一個能理清所有業務的架構師來定義一些主要的介面,這些介面不僅告訴開發人員你需要實現那些業務,而且也將命名規范限制住了(防止一些開發人員隨便命名導致別的程序員無法看明白)。
3、提高維護、拓展性:比如你要做一個畫板程序,其中裡面有一個面板類,主要負責繪畫功能,然後你就這樣定義了這個類,可是在不久將來,你突然發現這個類滿足不了你了,然後你又要重新設計這個類,更糟糕是你可能要放棄這個類,那麼其他地方可能有引用他,這樣修改起來很麻煩,如果你一開始定義一個介面,把繪制功能放在介面里,然後定義類時實現這個介面,然後你只要用這個介面去引用實現它的類就行了,以後要換的話只不過是引用另一個類而已,這樣就達到維護、拓展的方便性。
4、增強安全、嚴密性:介面是實現軟體松耦合的重要手段,它描敘了系統對外的所有服務,而不涉及任何具體的實現細節。這樣就比較安全、嚴密一些(一般軟體服務商考慮的比較多)。
(6)java介面代碼擴展閱讀:
關於介面的使用規范:
1、介面中可以定義常量,不能定義變數,如果你在介面中定義屬性,那麼通過反編譯可以看見他會自動用public static final 修飾,介面中的屬性都是全局靜態常量,介面中的常量必須在定義時指定初始值。
2、 介面中所有的方法都是抽象方法,介面中方法都會自動用public abstract 修飾,即介面中只有全局抽象方法。
3、 介面不能實例化,介面中不能有構造。
4、 介面之間可以通過extends實現繼承關系,一個介面可以繼承多個介面,但介面不能繼承類。
❼ java請設計一個使用抽象類或介面的示例代碼
//介面
publicinterfaceBankCard{
publicvoidnorm();
}
//工商銀行實現類
{
@Override
publicvoidnorm(){
//TODO銀行規范
}
publicvoidsaveMoney(intmoney){
//TODO執行存錢動作
}
publicvoidtransfer(Stringaccount,intmoney){
//TODO執行轉賬動作
}
}
//交通銀行實現類
{
@Override
publicvoidnorm(){
//TODO銀行規范
}
publicvoidsaveMoney(intmoney){
//TODO執行存錢動作
}
publicvoidtransfer(Stringaccount,intmoney){
//TODO執行轉賬動作
}
}
上面的例子只是申明了通用的規范,如果想讓實現類都能實現存錢和轉賬功能,可以在介面裡面聲明這兩個方法,寫一個通用的實現類,實現這些方法,然後具體的子類繼承該通用類,這樣可以直接繼承父類方法,如果不同的銀行具體實現不同,可以復寫父類中的兩個方法。
❽ java中通過介面並實現多態怎麼寫代碼希望給個具體事例
public interface Parent(){
public void simpleCall();
}
public class Child_A implements Parent{
public void simpleCall(){
System.out.println("a---simpleCall");
}
}
public class Child_B implements Parent{
public void simpleCall(){
System.out.println("b---simpleCall");
}
}
child_a和child_b中的simpleCall可以實現不同的功能。。。多態,簡單說其實就是一種功能的多種實現方式。或者理解為多種形態。
❾ 給我看段Java關於介面的代碼
1.interface介面的意思,java中的關鍵字
2.interface 定義出來的是一個介面,class定義出來的是一個類,enum定義出來的是一個枚舉,abstract class定義出來的是一個抽象類
3.在介面中定義兩個方法,但是都是沒有實現的,誰實現了這個介面,誰就負責具體實現這兩個方法
4.void start(); void stop();介面中定義的方法,定義的一個規范;就好比定義一個人有吃東西和喝東西的功能,但是具體吃什麼或者喝什麼就看生出來的這個人之後自己怎麼處理這兩個行為了
❿ Java:介面中可以寫實現代碼嗎
publicinterface介面A{
publicvoidget();
}
//**************
publicclass介面A的實現類implements介面A{
@Override
publicvoidget(){
System.out.println(1);
}
}
//**************
publicclassTest{
介面Ad=new介面A的實現類();
publicTest(){
d.get();
}
}
雖然可以,但不提倡,因為介面有其自己的存在意義,介面定義行為,一般的都是介面定義,然後用一個類實現。
如果您必須要在介面中實現方法:
publicinterface介面A{
publicvoidget();
publicdefaultvoidset(){
//實現
}
}