在设计继承肘,你会把共同的程序代码放在某个类中,然后告诉其他的类说此类是它们的父类. 当某个类继承另一个类的时候也就是子类继承自父类。
public class Doctor {
boolean worksAtHostpital;
void treatPatient() {
//执行检查
}
public class FamilyDoctor extends Doctor {
boolean makesHouseCalls;
void giveAdvice(){
//提出诊断
}
}
public class Surgeon extends Doctor {
void treatPatient(){
//进行手术
}
void makeIncision(){
}
}
}
class Animal {
/**
* 实例变量
*/
boolean picture;
String food;
int hunger;
long boundaries;
int location;
/**
* 方法
*/
public void makeNoise(){
}
public void eat(){
}
public void sleep(){
}
public void roam(){
}
}
/**
* 猫科类动物
*/
class Feline extends Animal{
public void roam(){
}
}
/**
* 犬科类动物
*/
class Canine extends Animal{
public void roam(){
}
}
class Lion extends Feline{
public void makeNoise(){
}
public void eat(){
}
}
class Hippo extends Animal{
public void makeNoise(){
}
public void eat(){
}
}
class Tiger extends Feline{
public void makeNoise(){
}
public void eat(){
}
}
class Dog extends Canine{
public void makeNoise(){
}
public void eat(){
}
}
class Cat extends Feline{
public void makeNoise(){
}
public void eat(){
}
}
class Wolf extends Canine{
public void makeNoise(){
}
public void eat(){
}
}
class AnimalTest{
public static void main(String[] args){
Wolf w = new Wolf();
w.makeNoise();
w.roam();
w.eat();
w.sleep();
}
}
public class MonsterTestDriver {
public static void main(String[] args){
Monster[] ma = new Monster[3];
ma[0] = new Vampire();
ma[1] = new Dragon();
ma[2] = new Monster();
for (int x = 0;x < 3;x++){
ma[x].frighten(x);
}
}
}
class Monster{
boolean frighten(int d){
System.out.println("arrrgh");
return true;
}
}
class Vampire extends Monster{
boolean frighten(int x){
System.out.println("a bite?");
return false;
}
}
class Dragon extends Monster{
boolean frighten(int degree){
System.out.println("breath fire");
return true;
}
}
1、IS-A测试:
例如:三角形是一个多边型
外科医生是一个医生
如果类Y是继承类X . 旦类Y是类Z的父类,那么Z应该能通过IS-AX的测试。
2、Public类型的成员会被继承。
3、Private类型的成员不会被继承。
-
子类会继承父类所有public类型的实例变量和方法,但不会继承父类所有private类型的变量和方法。
-
继承下来的方法可以被覆盖掉,但实例变量不能被覆盖掉。
1234