[轉載] Java之繼承

參考鏈接: Java多重繼承

Java之繼承?

繼承是面向對象程序的一個基本特征,通過繼承可以實現父子關系,以及代碼的復用。通過繼承實現的類稱為子類,被繼承的類稱為父類,所有直接或間接被繼承的類都稱為父類。?

Java類體系中的根類是java.lang.Object,所有類都是Object的直接子類或間接子類。如果定義類時沒有extends子句,則該類的父類默認為Object。Java中不支持類似C++中的多重繼承特性,Java只支持單繼承,每個Java類最多只能有一個父類。在類的聲明中,通過extends關鍵字聲明一個繼承關系。?

?

示例1?

?

?動物類之狗,貓,鳥,魚分別繼承實現名字,年齡,動作的輸出?

?

代碼塊?

package com.Hwadee;

/**

?*繼承

?*/

?

public class Test {

?

? ? public static void main(String[] args) {

? ? ? ? Dog d=new Dog("狗",2);? ? ?//創建對象

? ? ? ? d.eat();

? ? ? ? Cat c=new Cat("貓",1);

? ? ? ? c.eat();

? ? ? ? Bird b=new Bird("鳥",3);

? ? ? ? b.eat();

? ? ? ? Fish f=new Fish("魚",6);

? ? ? ? f.eat();

? ? }

?

}

class Animal{

? ? String name;

? ? int age;

? ? public Animal() {? ? ? ? ? ? ?//默認構造函數

? ? }

? ? public Animal(String name, int age) {

? ? ? ? this.name = name;

? ? ? ? this.age = age;

? ? }

? ? public void eat(){

? ? ? ? System.out.println("吃東西");

? ? }

?

}

class Dog extends Animal{? ? ? ? //Dog類繼承Animal父類

? ? public Dog(){

? ? }

? ? public Dog(String name,int age){

? ? ? ? this.name=name;

? ? ? ? this.age=age;

? ? ? ? System.out.println("名字:"+name+"\t"+"年齡:"+age);

? ? }

? ? @Override? ? ?//方法重寫

? ? public void eat(){

? ? ? ? System.out.println("吃骨頭");

? ? }

}

class Cat extends Animal{

?

? ? public Cat() {

? ? ? ? super();

? ? }

?

? ? public Cat(String name, int age) {

? ? ? ? super(name, age);

? ? ? ? System.out.println("名字:"+name+"\t"+"年齡:"+age);

? ? }

? ? @Override

? ? public void eat(){

? ? ? ? System.out.println("吃魚");

? ? }

}

class Bird extends Animal{

?

? ? public Bird() {

? ? ? ? super();

? ? }

?

? ? public Bird(String name, int age) {

? ? ? ? super(name, age);

? ? ? ? System.out.println("名字:"+name+"\t"+"年齡:"+age);

? ? }

? ? @Override

? ? public void eat(){

? ? ? ? System.out.println("吃蟲子");

? ? }

}

class Fish extends Animal{

?

? ? public Fish() {

? ? ? ? super();

? ? }

?

? ? public Fish(String name, int age) {

? ? ? ? super(name, age);

? ? ? ? System.out.println("名字:"+name+"\t"+"年齡:"+age);

? ? }

? ? @Override

? ? public void eat(){

? ? ? ? System.out.println("吃蝦米");

? ? }

}

?

結果1?

? ·?

示例2?

?

?各類調用自己的私有成員?

?

package com.Hwadee;

/**

?*繼承例二

?*各類調用自己的私有成員

?*/

public class Extend {

?

? ? public static void main(String[] args) {

? ? ? ? Car c=new Car();

? ? ? ? Truck t=new Truck();

? ? ? ? c.setName("擎天柱");

? ? ? ? c.setNum(123432);

? ? ? ? String name = c.getName();

? ? ? ? int num = c.getNum();

? ? ? ? System.out.println("名字:"+name+"\n"+"號碼:"+num);

? ? ? ? t.setCapacity(1000);

? ? ? ? int capacity = t.getCapacity();

? ? ? ? System.out.println("容量:"+capacity);

? ? }

?

}

class Car{

? ? private int num;

? ? private String name;

? ? public Car() {

? ? }

? ? public Car(int num, String name) {

? ? ? ? this.num = num;

? ? ? ? this.name = name;

? ? }

? ? public int getNum() {

? ? ? ? return num;

? ? }

? ? public void setNum(int num) {

? ? ? ? this.num = num;

? ? }

? ? public String getName() {

? ? ? ? return name;

? ? }

? ? public void setName(String name) {

? ? ? ? this.name = name;

? ? }

?

}

class Truck extends Car{

? ? private int capacity;

?

? ? public int getCapacity() {

? ? ? ? return capacity;

? ? }

?

? ? public void setCapacity(int capacity) {

? ? ? ? this.capacity = capacity;

? ? }

?

}

?

結果二

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/540287.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/540287.shtml
英文地址,請注明出處:http://en.pswp.cn/news/540287.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Spark(二): 內存管理

2019獨角獸企業重金招聘Python工程師標準>>> Spark 作為一個以擅長內存計算為優勢的計算引擎,內存管理方案是其非常重要的模塊; Spark的內存可以大體歸為兩類:execution和storage,前者包括shuffles、joins、sorts和agg…

[轉載] 手把手教你整合最優雅SSM框架:SpringMVC + Spring + MyBatis

參考鏈接: Java繼承類的對象創建 本文發表于2016年6月,寫于作者學生時期。文中使用到的技術和框架可能不是當下最佳實踐,甚至很不“優雅”。但對于剛接觸JavaEE和Spring的同學來說,還是能有很多收獲的,大牛輕拍 我們…

多播、組播、廣播優缺點分析

2019獨角獸企業重金招聘Python工程師標準>>> 單播、多播和廣播單播”(Unicast)、“多播”(Multicast)和“廣播”(Broadcast)這三個術語都是用來描述網絡節點之間通訊方式的術語。那么這些術語究…

[轉載] Java重載、覆蓋與構造函數

參考鏈接: Java中的繼承和構造函數 /** * 拷貝構造函數---Copyf t2 new Copyf(t1);就不會在調用默認構造函數了。 * 復制clone和引用 * 重載是在同一個類(范圍)中,覆蓋是子類對父類而言。 重載不關心返回值類型。 靜態方法不能被…

LOFTERD18B542F16FF685FD684F427B4…

2019獨角獸企業重金招聘Python工程師標準>>> 驗證 轉載于:https://my.oschina.net/jinhengyu/blog/1572124

[轉載] Java獲取一個類繼承的父類或者實現的接口的泛型參數

參考鏈接&#xff1a; Java中的接口和繼承 泛型的作用就不多介紹了&#xff0c;如果你想具備架構設計能力&#xff0c;那么熟練使用泛型是必不可少的。 不多說了&#xff0c;先定義泛型父類和泛型接口&#xff1a; package cn.zhh; public class Parent<T1, T2> { …

PHP系列(一)PHP流程控制結構

while(){} do{ }while(); for( 表達式1; 表達式2;表達式3 ){ 語句或語句序列; } if(){} if(){ }elseif{} <?php $i0; while(true) { if($i>100) break; echo ".$i.<br>"; $i; } ?> <?php echo "<table border1800>"; echo &quo…

[轉載] Scala繼承與Java的區別

參考鏈接&#xff1a; Java中將final與繼承一起使用 在之前的筆記Java靜態屬性和方法的繼承問題中&#xff0c;通過具體的實驗證明&#xff0c;在子類中重寫父類的字段時并沒有覆蓋父類的字段&#xff0c;只是隱藏了父類的字段。而在scala中則不同&#xff0c;scala子類的同名…

Source Map調試壓縮后代碼

在前端開發過程中&#xff0c;無論是樣式還是腳本&#xff0c;運行時的文件可能是壓縮后的&#xff0c;那這個時候調試起來就很麻煩。 這個時候&#xff0c;可以使用Source Map文件來優化調試&#xff0c;Source Map是一個信息文件&#xff0c;里面儲存著原代碼位置信息&#x…

[轉載] Python3十大經典錯誤及解決辦法

參考鏈接&#xff1a; Python中的關鍵字2 ◆ ◆ ◆ ◆ ◆ 接觸了很多Python愛好者&#xff0c;有初學者&#xff0c;亦有轉行人。不論大家學習Python的目的是什么&#xff0c;總之&#xff0c;學習Python前期寫出來的代碼不報錯就是極好的。下面&#xff0c;嚴小樣兒為大家羅…

兩臺電腦間大量數據拷貝的快捷方法

可能大家會遇到需要將一臺電腦里的數據拷貝到另外一臺電腦&#xff0c;最常用的方法是用u盤或移動硬盤等存儲設備來拷貝&#xff0c;這樣速度慢&#xff0c;而且可能拷貝多次才能將數據拷貝完。現提供一種方法&#xff0c;就是通過windows 的文件共享來實現。通過千兆網線直接連…

[轉載] 使用 Web 標準生成 ASP.NET 2.0 Web 站點

參考鏈接&#xff1a; 使用super訪問Java祖父母的成員 Stephen WaltherSuperExpert.com 適用于&#xff1a; Microsoft ASP.NET 2.0 (Beta 2) Microsoft Visual Studio .NET 2005 Microsoft Visual Web Developer 摘要&#xff1a; Microsoft ASP.NET 2.0 具有很多有用的功能…

Office快捷鍵大全之三(Access快捷鍵下篇)

向下鍵 向某幫助主題的末尾滾動 Page Up 以較大增量向某幫助主題的開頭滾動 Page Down 以較大增量向某幫助主題的末尾滾動 Home 移到某幫助主題的開頭 End 移到某幫助主題的末尾 CtrlP 打印當前幫助主題 CtrlA 選定整個幫助主題 CtrlC 將選定項復制到"剪貼…

[轉載] 如何在Android設備之間共享Google Play應用,音樂等

參考鏈接&#xff1a; 使用super訪問Java祖父母的成員 We recently showed you how to configure your iOS devices for app and media sharing; more than a few people wrote in asking how to do the same thing with Google Play purchases. Read on as we dig into how t…

linux 高性能讀書筆記之通用socket地址

####socket網絡編程接口 socket的地址是結構體sockaddr 代碼如下 struct sockaddr{ sa_family_t sa_family; char sa_data[14]; } sa_family 成員是地址族類型&#xff08;sa_family_t)變量。地址族類型通常與協議族類型對應 1.二者對應表 協議族地址表描述PF_UNIXAF_UNIXUNIX本…

[轉載] JAVA面向對象之代碼塊 繼承 方法的重寫 super關鍵字與重寫toString()方法介紹

參考鏈接&#xff1a; 可以重寫Java中的私有方法嗎 JAVA面向對象之代碼塊與繼承 代碼塊分類 局部代碼塊 作用:限制變量生命周期 書寫位置:在方法中 構造代碼塊 開發中很少使用 書寫位置:類中 方法外 調用時機:如果你有構造代碼塊 系統會幫你調用 幫你在創建對象…

struts2中s:select標簽的使用

轉自&#xff1a;https://www.cnblogs.com/Sara-shi/archive/2013/03/13/struts2_select.html 1 靜態生成 <s:select name"user.sex" list"#{0:男,1:女}" label"性別" headerKey"" headerValue"請選擇性別"></s:se…

[轉載] JAVA面試題大全(part_1)

參考鏈接&#xff1a; 對Java中派生類方法更嚴格的訪問 JAVA面試題大全(part_1) 1、面向對象的特征有哪些方面 (1)抽象&#xff1a; 抽象就是忽略一個主題中與當前目標無關的那些方面&#xff0c;以便更充分地注意與當前目標有關的方面。抽象并不打算了解全部問題&#xf…

使用mysqladmin命令修改MySQL密碼與忘記密碼

修改密碼&#xff1a; 1.例如你的 root用戶現在沒有密碼&#xff0c;你希望的密碼修改為123456&#xff0c;那么命令是&#xff1a; mysqladmin -u root password 123456 2.如果你的root現在有密碼了&#xff08;123456&#xff09;&#xff0c;那么修改密碼為abcdef的命令是&a…

[轉載] java面試100問+參考答案

參考鏈接&#xff1a; 對Java中派生類方法更嚴格的訪問 1、面向對象的特征有哪些方面 (1).抽象&#xff1a; 抽象就是忽略一個主題中與當前目標無關的那些方面&#xff0c;以便更充分地注意與當前目標有關的方面。抽象并不打算了解全部問題&#xff0c;而只是選擇其中的…