標籤:gen 轉型 物件導向編程 不能 因此 java基礎 .sh 移動 hone
1、對象的上轉型
對象的上轉型不能調用和使用子類對象新增的成員和變數,不能調用子類新增的方法。
上轉型對象可以訪問子類繼承或者隱藏的成員變數,也可以調用子類繼承或者子類重寫的執行個體方法。因此如果子類重寫了父類的某個執行個體方法後,當對象的上轉型對象調用這個執行個體方法時一定是調用了子類重新寫的執行個體方法。
2、抽象方法
對於abstract方法,只允許聲明,不允許實現,不允許使用final和abstract同時修飾一個方法或者一個類,abstract方法只能是執行個體方法,abstract類中可以有abstract方法。非abstract類中不可以有abstract方法。
3、物件導向編程,經常會使用到abstract類,abstract類只關心操作,不關係這些操作的具體實現的細節問題,
package com.Example1;
public class Exmaple5_12 {
public static void main(String[] args) {
// TODO Auto-generated method stub
MobileTelephone telephone = new MobileTelephone();
SIM sim = new SIMofChinaMobile();
sim.setNumber("2454545");
telephone.userSIM(sim);
telephone.showMessage();
sim = new SIMofChinaUnicon();
sim.setNumber("454664646");
telephone.userSIM(sim);
telephone.showMessage();
}
}
abstract class SIM {
public abstract void setNumber(String n);
public abstract String giveNumber();
public abstract String giveCorpName();
}
class MobileTelephone {
SIM card;
public void userSIM(SIM card) {
this.card = card;
}
public void showMessage() {
System.out.println("use card name is" + card.giveCorpName());
System.out.println("SIm‘number is" + card.giveNumber());
}
}
class SIMofChinaMobile extends SIM {
String number;
@Override
public void setNumber(String n) {
// TODO Auto-generated method stub
number = n;
}
@Override
public String giveNumber() {
// TODO Auto-generated method stub
return number;
}
@Override
public String giveCorpName() {
// TODO Auto-generated method stub
return "聯通卡";
}
}
class SIMofChinaUnicon extends SIM {
String number;
@Override
public void setNumber(String n) {
// TODO Auto-generated method stub
number = n;
}
@Override
public String giveNumber() {
// TODO Auto-generated method stub
return number;
}
@Override
public String giveCorpName() {
// TODO Auto-generated method stub
return "中國移動";
}
}
4、繼承是一種已有的類建立新的類的機制,利用繼承,可以建立一個共有的屬性的一般類,根據一般類建立據用特殊屬性的新類。
java基礎概念整理(三)