我給你出一個,已知一個類A 的一個屬性 int a = 1,除了修改這句代碼我要你列印出a賦值之前的原始值0,提示通過繼承可以實現。
❷ Java面向對象問題,為什麼很多人說特徵是三個繼承.封裝.多態,而有的人說是四個,還有一個抽象
應該說只有三個
抽象這個東西啊,所有語言都有,就不算Java的特性了
應該說繼承.封裝.多態是面向對象語言都有的,只是Java是常見語言裡面面向對象做得比較徹底的一門語言、也是用C語法完成面向對象反襯出這三個特性比較獨特的語言。
❸ 舉例說明java面向對象的封裝繼承多態
封裝:向你把所有的方法都寫道一個類裡面,
繼承:動物下面有人,狗,貓等等
多態:有同明的函數,但是函數的參數又不同!
這些是比較簡單的理解了!
❹ java面向對象關於繼承的問題
Base base=new Child();
這個分為兩部分。。Base base這是定義。。base=new Child();這是賦值。。
因為你把base定義為 Base類型。。所以編譯器把他當做Base類型。。至於實際類型。。運行的時候才能確定。。所以不能訪問Child的屬性和方法。。
Child child=new Child();
Base child=new Child();
這個的不同應該明白了撒。。就是你寫代碼的時候。。編譯器把他們看成的類型是不一樣的。。
❺ 關於java的繼承 面向對象
如果按照你的題意,實現遠程,繼承戰士,是可行的,
如果你說一句也不寫,那就需要另外一個類了,另外一個類執行剛才的動作,然後新職業去繼承另外那個類,顯然這么做,毫無意義!
所以我測試了一下給出以下代碼,僅供你參考一下,不足之處還請指點!
/*-----------用中文做命名,是為了好理解,不要被誤導-------------*/
publicclassGame
{
publicstaticvoidmain(String[]args)
{
System.out.println(" ==========新職業========== ");
init();
}//初始化!
privatestaticvoidinit()
{
新職業x=new新職業();
x.遠程();
x.近戰();
}
}
//射手!
interface射手
{
abstractvoid遠程();
}
//戰士!
class戰士
{
void近戰()
{
System.out.println("近戰攻擊!");
}
}
//新職業!
class新職業extends戰士implements射手
{
publicvoid遠程()
{
System.out.println("遠程攻擊");
}
}
按照面向對象思想,這些代碼一點也沒有重復!
還有一種辦法,兩個介面(遠程和戰士),
同時去實現這兩個介面(遠程,和戰士)!
也可以用戰士介面去繼承遠程介面,不過這樣做,戰士已經變的不是純戰士了!!不要這樣搞了!
❻ java面向對象繼承
package wenwen; public class Wiring { protected double power;//功率 protected double pressure;//額定電壓 protected double current;//額定電流 protected String electricity;//直流類型 //創建電器類的構造函數 public Wiring(double power,double pressure,double current, String electricity) { super(); this.power = power; this.pressure = pressure; this.current = current; this.electricity = electricity; } //創建work函數 public void work(){ System.out.println("電器工作功率是:"+power+"電器額定電壓是:"+pressure+"電器額定電流是:"+current+"電器工作電流類型是:"+electricity); } public double getPower() { return power; } public void setPower(double power) { this.power = power; } public double getPressure() { return pressure; } public void setPressure(double pressure) { this.pressure = pressure; } public double getCurrent() { return current; } public void setCurrent(double current) { this.current = current; } public String getElectricity() { return electricity; } public void setElectricity(String electricity) { this.electricity = electricity; } } /*電視類繼承父類wiring*/ public class TV extends Wiring{ protected String type;//電視類型 protected int voulme;//電視最大音量 //創建電視類的構造函數 public TV(double power, double pressure, double current, String electricity, String type, int voulme) { super(power, pressure, current, electricity); this.type = type; this.voulme = voulme; } public String getType() { return type; } public void setType(String type) { this.type = type; } public int getVoulme() { return voulme; } public void setVoulme(int voulme) { this.voulme = voulme; } //對work函數的重寫 public void work(){ System.out.println("電視工作功率是:"+power+"電視額定電壓是:"+pressure+"電視額定電流是:"+current+"電視工作電流類型是:"+electricity+"電視的型號是:"+type+"電視的最大音量是:"+voulme); //System.out.println("電視的型號是:"+type+"電視的最大音量是:"+voulme); } } /*冰箱類繼承父類wiring*/ public class Icebox extends Wiring{ protected double capacity;//容量 //創建冰箱類的構造函數 public Icebox(double power, double pressure, double current, String electricity, double capacity) { super(power, pressure, current, electricity); this.capacity = capacity; } public double getCapacity() { return capacity; } public void setCapacity(double capacity) { this.capacity = capacity; } //繼承work工作方法 public void work(){ System.out.println("冰箱工作功率是:"+power+"冰箱額定電壓是:"+pressure+"冰箱額定電流是:"+current+"冰箱工作電流類型是:"+electricity); } } 這是我寫的有不好的地方給點意見(java我們也剛學),如果剛覺還可以,請採納,謝謝!
❼ JAVA繼承,面向對象..
main主函數中的dog類是從哪來的? 然後你可以給我們看下你報的什麼錯,就是控制台列印出來的信息。 一般看那裡就知道你哪裡錯了。
❽ JAVA面向對象,繼承、封裝、多態
package com.action;
public abstract class Sharpe {
//坐標 要看你 是什麼地方的了是左上角還是中心?
//這兒按照習慣是坐上角
private Point location;
public Point getLocation() {
return location;
}
public void setLocation(Point location) {
this.location = location;
}
//圖形未確定使用高中數學還無法解決。。微積分不知道有沒有可以求出任意圖形面積的方法
//所以是抽象的
public abstract Double SumArea();
}
--------------------------------------------------------------------------------------------
package com.action;
public class Point {
int x = 0;
int y = 0;
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
}
}
-------------------------------------------------------------------------------
package com.action;
public class Circle extends Sharpe {
public static Double pai=3.1415;
private Double ra;
@Override
public Double SumArea() {
return pai*ra*ra;
}
}
----------------------------------------------------------------------------------------------
package com.action;
public class Rectangle extends Sharpe {
private Double length;
private Double width;
@Override
public Double SumArea() {
// TODO Auto-generated method stub
return length * width;
}
public Double getLength() {
return length;
}
public void setLength(Double length) {
this.length = length;
}
public Double getWidth() {
return width;
}
public void setWidth(Double width) {
this.width = width;
}
}
以上是使用面向對象的思想完成了你所說程序 (2) Shape提供檢查是否包含指定坐標的方法不明白你的意思)
以上抽象類也可以使用介面來做
❾ java(面向對象)中,繼承中的初始化順序是怎樣的(子父類角度)
初始化子類時會先初始化父類,之後才初始化子類的
❿ 關於JAVA的繼承問題,面向對象
構造器中第一行如果調用了super,就不再自動補充默認的無參super。一個子類可以使用多個super,但一個構造器中只能用一個,而且必須寫在第一行。子類只能繼承父類非私有化的組件,如果把構造器私有化,那就不能產生子類。