一、多态
1、简单说明
(1)同一个对象拥有多个状态,可以把不同的类型进行统一,让程序具有超强的可扩展性,简化了调用时的操作。
(2)“父类=子类”向上赋值:因为子类可以当做父类看,所以可以把子类赋值给父类。
(3)通过父类引用只能访问子类对象从父类继承过来的成员,通过父类引用不能访问子类对象所特有(私有)的成员。
2、测试练习
class Whale extends Mammal{
public void speeking(){
System.out.println("我是生活在海里的鲸鱼。");
}
}
class Bat extends Mammal{
public void speeking(){
System.out.println("我是蝙蝠,是能飞的老鼠。");
}
}
class Dolphin extends Mammal{
public void speeking(){
System.out.println("我是白鳍豚,别人都叫我水中大熊猫。");
}
}
class Mammal{
public void speeking(){
System.out.println("动物正在说话……");
}
}
class Person{
public void act(Mammal ma){
ma.speeking();
}
}
public class Test05{
public static void main(String[] args){
Mammal ma1 = new Whale();
Mammal ma2 = new Bat();
Mammal ma3 = new Dolphin();
Person P = new Person();
P.act(ma1);
P.act(ma2);
P.act(ma3);
}
}
这样,无论有多少种哺乳动物,都可以直接继承哺乳动物类,哺乳动物类会直接调用陈述的语句。
3、向上赋值会屏蔽子类中特有的方法,此时需要向下转型
class Whale extends Mammal{
public void speeking(){
System.out.println("我是生活在海里的鲸鱼。");
}
public void ejecting(){
System.out.println("一只蓝鲸正在向海面上空喷出巨大的水柱!");
}
}
class Bat extends Mammal{
public void speeking(){
System.out.println("我是蝙蝠,是能飞的老鼠。");
}
}
class Dolphin extends Mammal{
public void speeking(){
System.out.println("我是白鳍豚,别人都叫我水中大熊猫。");
}
}
class Mammal{
public void speeking(){
System.out.println("动物正在说话……");
}
}
class Person{
public void act(Mammal ma){
ma.speeking();
}
}
public class Test05{
public static void main(String[] args){
Mammal ma0 = new Mammal();
Mammal ma1 = new Whale();
Mammal ma2 = new Bat();
Mammal ma3 = new Dolphin();
Person P = new Person();
P.act(ma0);
P.act(ma1);
P.act(ma2);
P.act(ma3);
System.out.println("------------------------------------------");
Whale wh = (Whale)ma1;
wh.ejecting();
}
}
二、final关键字(不可变)
1、简单说明
- 被final修饰的变量不可以被改变被称之为常量。
- 被final修饰的方法不可以被重写(也是属于不可以被改变)
- 被final修饰的类不可以被继承
2、当修改final修饰的内容时会出现错误
3、测试练习
public class Test05{
final int height = 180;
public final void speeking(){
System.out.println("我是不会变心的!!!");
}
public static void main(String[] args){
final int height = 99;
Test05 te = new Test05();
te.speeking();
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)