黑马程序员技术交流社区
标题:
父类引用指向子类对象
[打印本页]
作者:
冷叙辰
时间:
2013-3-14 11:42
标题:
父类引用指向子类对象
本帖最后由 冷叙辰 于 2013-3-14 18:53 编辑
在什么时候使用父类引用指向子类对象,并且它的好处是什么?
作者:
郑晓飞
时间:
2013-3-14 12:19
当子类出现和父类一模一样的函数时,子类对象在调用该函数时,会运行子类函数的内容。如同父类函数被覆盖了一样。
此时父类函数还在内存中,只是没有运行。
子类继承父类,会沿袭父类的功能。如果子类功能内容与父类不相同时,此时不必定义新功能,而是使用覆盖,保留父类功能定义,并重写功能内容
覆盖特点:
使用覆盖功能必须保证子类权限大于等于父类权限,否则编译不通过。
静态只能覆盖静态。
这样做的好处是:提高了代码的复用性。
初学者只能现学现卖到这里了。
作者:
李思杰
时间:
2013-3-14 13:19
class Person
{
String name;//name和age是student和worker共有的属性,所以可以把name和age提取出来,定义一个person类,也就是父类
int age;
}
class Student extends/*继承*/ Person
{
// String name;因为student继承的person,所以注释的2行代码可以省略不写,这样提高了代码的复用性
// int age;
void study()
{
System.out.println(name+"...student study.."+age);
}
}
class Worker extends Person
{
// String name;worker继承了person,所以这2行代码也可以不写
// int age;
void work()
{
System.out.println("worker work");
}
}
class ExtendsDemo
{
public static void main(String[] args)
{
Student s = new Student();
s.name= "zhangsan";
s.age = 22;
s.study();
}
}
复制代码
当子类有共同的属性时,可以提取出来,构造一个父类,把共同属性加入父类,再由子类继承父类。
好处就是提高代码复用性。
作者:
黑马-李嘉欣
时间:
2013-3-14 13:42
多态:可以理解为事物存在的多种体现形态。在对象上的体现。
1.多态的体现:父类的引用指向了自己的子类对象。
父类的引用也可接受子类的对象。如 Animal c=new Cat()
2.多态的前提:
必须是类与类之间有关系,要么继承,要么实现。
通常还有一个前提:存在覆盖。
3.多态的好处:
多态大大提高了程序的扩展性。
4.多使态的弊端:
调高了扩展性,但是只能使用父类的引用访问父类中的成员。不能访问子类特有的成员,
还有什么不明白的给我私信,希望对你有帮助~
作者:
猫腻
时间:
2013-3-14 13:53
楼主如果没问题,请结贴,有问题请继续追问。
作者:
马甲大王
时间:
2013-3-14 14:00
好比有一个Animal类有一个抽象方法eat()
一些Animal的子类,Cat,Dog类,都复写的各自的eat()方法。
Animal animal = newCat();
animal.eat();
如果你以后想改成Dog类的eat()时,只需把newCat()改为newDog()
作者:
tianyun
时间:
2013-3-14 17:00
父类对象应用指向子类对象,是java面向对象多态性的体现。当父类对象的方法被子类重写后,父类的应用只能调用被子类重写的方法,并且该应用不能直接访问子类中存在而父类中不存在的方法,学转换成子类对象再访问。
作者:
王龙涛
时间:
2013-3-14 17:36
多态的体现就是通过,父类指向自己的子类对象。
父类的引用也可以接收自己的子类对象。
好处:
多态的出现大大提高了程序的扩展性。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2