您的位置:首页 > 编程语言 > Java开发

Java day05 继承 extends

2016-03-17 11:20 363 查看
//继承
/*
java只支持单继承,即某类只能延续一个类
∵当多个父类定义了同名方法,而方法功能不同时,子类不知道该继承哪一个
但是用多实现可以 完成与多继承同样的功能

当父类和子类中有同名同类型不同值成员属性,或者函数声明相同,函数体不同的成员方法时,以子类为准———重写,覆盖
——用于程序扩展
———前提:子类(方法)权限>=父类(方法),若父类(方法)权限为private则无意义
super指代父类的引用

子类默认也 执行父类的显式无参构造函数,若父类中没有显式无参构造函数,则发生错误,除非父类有含参构造函数,那么,子类构造函数中super()必须显式写出,且带参数
子类的构造函数形式
子类名(……)
{
super();//函数体内 第一行,这一句是隐含的,它访问父类中空参数的构造函数
………………
}
为什么这么设计?
构造函数的功能通常是对属性进行初始化,因而子类须知道父类是如何对属性进行操作的

*/
class People
{//People是Student和Worker的共性的抽取
People()
{
System.out.println("LALALA");
}
String name;
int age;
void show()
{
System.out.println("I'm a man");
}
}

class Student extends People
{//Student是People的延续
void study()
{
System.out.println("studying");
}
void show()
{
super.show();
System.out.println("I'm a student");
}
}

class Worker extends People
{
void work()
{
System.out.println("working");
}
}

class  ExtendsDemo
{
public static void main(String[] args)
{
Student s=new Student();
s.study();
s.show();
}
}




若去掉Student类中的show方法中的第一行super.show(),程序运行结果是

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: