可運行的:
十多年的巴南網站建設經驗,針對設計、前端、開發、售后、文案、推廣等六對一服務,響應快,48小時及時工作處理。營銷型網站的優勢是能夠根據用戶設備顯示端的尺寸不同,自動調整巴南建站的顯示方式,使網站能夠適用不同顯示終端,在瀏覽器中調整網站的寬度,無論在任何一種瀏覽器上瀏覽網站,都能展現優雅布局與設計,從而大程度地提升瀏覽體驗。創新互聯公司從事“巴南網站設計”,“巴南網站推廣”以來,每個客戶項目都認真落實執行。
import java.awt.*;
import java.awt.event.*;
public class BackJFrame extends Frame{
public BackJFrame(){
super("臺球");
setSize(300,300);
setBackground(Color.cyan); //背景
setVisible(true);
addWindowListener(new WindowAdapter()
{
public void windowClosing (WindowEvent e)
{System.exit(0);}
} );
}
public static void main(String args[]){
new BackJFrame();
}
}
措施一:改寫類的實例方法
通過類繼承實現代碼重用不是精確的代碼重用技術,因此它并不是最理想的代碼重用機制。換句話說,如果不繼承整個類的所有方法和數據成員,我們無法重用該類里面的單個方法。繼承總是帶來一些多余的方法和數據成員,它們總是使得重用類里面某個方法的代碼復雜化。另外,派生類對父類的依賴關系也使得代碼進一步復雜化:對父類的改動可能影響子類;修改父類或者子類中的任意一個類時,我們很難記得哪一個方法被子類覆蓋、哪一個方法沒有被子類覆蓋;最后,子類中的覆蓋方法是否要調用父類中的對應方法有時并不顯而易見。
任何方法,只要它執行的是某個單一概念的任務,就其本身而言,它就應該是首選的可重用代碼。為了重用這種代碼,我們必須回歸到面向過程的編程模式,把類的實例方法移出成為全局性的過程。為了提高這種過程的可重用性,過程代碼應該象靜態工具方法一樣編寫:它只能使用自己的輸入參數,只能調用其他全局性的過程,不能使用任何非局部的變量。這種對外部依賴關系的限制簡化了過程的應用,使得過程能夠方便地用于任何地方。當然,由于這種組織方式總是使得代碼具有更清晰的結構,即使是不考慮重用性的代碼也同樣能夠從中獲益。
題目有關回答如下,供參考:
4、this:當前對象的引用
super:當前對象的超(父)類對象的一個引用
5、繼承是面向對象最顯著的一個特性。
繼承的意義:繼承是從已有的類中派生出新的類,新的類能吸收已有類的數據屬性和行為,并能擴展新的能力。
定義繼承:使用關鍵字 extends 來實現繼承
6、多態(Polymorphism)按字面的意思就是“多種狀態”,也是面向對象的一個特性。
允許將子類類型的引用賦值給父類類型的引用。
7、代碼如下:
/**
*?父類(圖形)
*?
*?@author?qd
*
*/
abstract?class?Figure?{
double?area;
}
/**
*?求面積的接口
*?
*?@author?qd
*
*/
interface?Area?{
public?void?getArea();
}
/**
*?三角形
*?
*?@author?qd
*
*/
class?Triangle?extends?Figure?implements?Area?{
//?底
double?bottom;
//?高
double?high;
public?Triangle(double?bottom,?double?high)?{
super();
this.bottom?=?bottom;
this.high?=?high;
}
@Override
public?void?getArea()?{
area?=?bottom?*?high?*?0.5;
System.out.println("三角形面積是:"?+?area);
}
}
/**
*?正方形
*?
*?@author?qd
*
*/
class?Square?extends?Figure?implements?Area?{
//?邊長
double?length;
public?Square(double?length)?{
super();
this.length?=?length;
}
@Override
public?void?getArea()?{
area?=?length?*?length;
System.out.println("正方形面積是:"?+?area);
}
}
/**
*?圓
*?
*?@author?qd
*
*/
class?Circular?extends?Figure?implements?Area?{
//?半徑
double?radius;
public?Circular(double?radius)?{
super();
this.radius?=?radius;
}
@Override
public?void?getArea()?{
area?=?Math.PI?*?radius?*?radius;
System.out.println("圓面積是:"?+?area);
}
}
public?class?Test?{
public?static?void?main(String[]?args)?{
//?三角形對象
Area?triangle?=?new?Triangle(3,?4);
triangle.getArea();
//?正方形對象
Area?square?=?new?Square(4);
square.getArea();
//?圓對象
Area?circular?=?new?Circular(2);
circular.getArea();
}
}
8、代碼如下:
/**
*?球類
*?
*?@author?qd
*
*/
class?Ball?{
//?私有成員變量半徑
private?double?r;
public?double?getR()?{
return?r;
}
public?void?setR(double?r)?{
this.r?=?r;
}
}
/**
*?臺球
*?
*?@author?qd
*
*/
class?Billiards?extends?Ball?{
//?私有成員變量顏色
private?String?color;
public?void?setColor(String?color)?{
this.color?=?color;
}
//?輸出信息
public?void?printMess(Billiards?billiards,Ball?ball)?{
System.out.println("臺球的顏色是:"?+?billiards.color?+?"???臺球的半徑是:"?+?ball.getR());
}
}
/**
*?公有測試類
*?
*?@author?qd
*
*/
public?class?TestBall?{
public?static?void?main(String[]?args)?{
Ball?ball?=?new?Ball();
ball.setR(5);
Billiards?billiards?=?new?Billiards();
billiards.setColor("白色");
billiards.printMess(billiards,ball);
}
}
7題和8題測試如下:
第一個:
public?class?Yaojing?{
protected?String?name;
protected?int?age;
protected?String?gender;
public?void?showBasicInfo()?{
System.out.println(toString());
}
public?void?eatTangSeng()?{
System.out.println("吃飽了");
}
@Override
public?String?toString()?{
return?"Yaojing?[name="?+?name?+?",?age="?+?age?+?",?gender="?+?gender?+?"]";
}
}
第二個類
public?class?Zhizhujing?extends?Yaojing?{
public?void?buildNet(){
System.out.println("蜘蛛在織網");
}
}
第三個類
public?class?Baigujing?extends?Yaojing?{
public?void?beBeauty(){
System.out.println("白骨精");
}
}
class Point{
private int x, y;
//get / set
public Point(){
}
public Point(int x, int y){
this.x=x; this.y=y;
}
}
繼承就是再extends Point、并添加相應的方法、屬性
在 java中,用一個類同時繼承一個類和實現一個接口代碼如下:
class?Pigeon??extends?Bird?implements??Flyanimal?
{ ?? public?void?fly()
{
System.out.println("pigeon??can?fly");
}
public?void?egg()
{
System.out.println("pigeon??can?lay??eggs?");
}
}
類繼承:繼承是面向對象最顯著的一個特性。繼承是從已有的類中派生出新的類,新的類能吸收已有類的數據屬性和行為,并能擴展新的能力。Java繼承是使用已存在的類的定義作為基礎建立新類的技術,新類的定義可以增加新的數據或新的功能,也可以用父類的功能,但不能選擇性地繼承父類。
接口實現:接口實現在java中是一種特殊繼承方式,接口在定義后,就可以在類中實現該接口,在類中實現接口可以使用關鍵字implement。
創建父類:
class?Bird?{
int?legnum?=?2;?????void?egg()?{????};}
定義接口:
interface?Flyanimal
{ ?
void?fly();
}
當前名稱:Java繼承派生代碼 java實驗三類的繼承與派生
分享路徑:http://vcdvsql.cn/article14/doodide.html
成都網站建設公司_創新互聯,為您提供品牌網站設計、網站收錄、網站排名、全網營銷推廣、外貿網站建設、企業建站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯