多态
abstract class Student{
public abstract void study();
public void sleep()
{
System.out.println("躺着睡");
}
}
class BaseStudent
{ public void study()
{
System.out.println("Base Study");
}
public void sleep()
{
System.out.println("坐着睡");
}
}
class AdvStudent
{ public void study()
{
System.out.println("Adv Study");
}
}
class DoStudent
{
public void dosome(Student stu)
{
stu.study();
stu.sleep();
}
}
class DuoTai
{
public static void main(String[] args)
{
/*
BaseStudent bs=new BaseStudent();
bs.study();
bs.sleep();
AdvStudent as=new AdvStudent();
as.study();
as.sleep();
*/
DoStudent ds=new DoStudent();
//ds.dosome(new BaseStudent());
ds.dosome(new AdvStudent());
}
}
这个怎么解决、。 class --------------------编程问答-------------------- 类型的问题,public void dosome(Student stu)
ds.dosome(new AdvStudent()); --------------------编程问答--------------------
楼主啊,你忘记继承Student类了吧
--------------------编程问答-------------------- 楼主大哥,你的继承写掉了!!
abstract class Student {--------------------编程问答-------------------- class AdvStudent extends Student
public abstract void study();
public void sleep() {
System.out.println("躺着睡");
}
}
class BaseStudent extends Student{
public void study() {
System.out.println("Base Study");
}
public void sleep() {
System.out.println("坐着睡");
}
}
class AdvStudent extends Student{
public void study() {
System.out.println("Adv Study");
}
}
class DoStudent {
public void dosome(Student stu) {
stu.study();
stu.sleep();
}
}
class DuoTai {
public static void main(String[] args) {
/*
* BaseStudent bs=new BaseStudent(); bs.study(); bs.sleep(); AdvStudent
* as=new AdvStudent(); as.study(); as.sleep();
*/
DoStudent ds = new DoStudent();
ds.dosome(new BaseStudent());
ds.dosome(new AdvStudent());
}
}
你没继承当然不能多态 粗心了吧 --------------------编程问答-------------------- LZ没写继承何谈多态 --------------------编程问答-------------------- 总结下,extends 继承了Student类才可以的
多态: 方法的重载是属于多态
对于变量,父类的引用指向子类对象可以称之为多态
赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。也就是说,父亲的行为像儿子,而不是儿子的行为像父亲
--------------------编程问答-------------------- 没有定义子类,多态是利用子类对父类继承实现的。通过父类的引用指向子类对象的内存空间··· --------------------编程问答-------------------- 学习了,我说LZ的程序看着怎么少点儿什么东西,原来是继承!~前辈们都是火眼精金啊!~~
补充:Java , Java SE