/*
继承 extends
*/
class ExtendsDemo
{
public static void main(String[] args)
{
System.out.println("Hello World!");
}
}
//将学生和工人的共性描述提取出来,单独进行描述
//只要让学生和工人与单独描述的这个类有关系,就可以了。
/*
继承
1,提高代码的复用性
2,让类与类之间产生了关系,有了这个关系,才有了多态的特性
注意:千万不用为了获取某个类的功能,简化代码而去继承
必须是类与类之间有所属关系才可以继承
*/
class Person
{
String name;
int age;
}
class Student extends Person
{
void study()
{
System.out.println("我在学习");
}
}
class Worker extends Person
{
void work()
{
System.out.println("我在工作");
}
}
/*
this 本类对象的引用 super 父类对象引用
*/
class ExtendsDemo2
{
public static void main(String[] args)
{
Zi z=new Zi();
z.show();
//System.out.println(z.num+"...."+z.num);
}
}
/*
子父类出现后,类成员特点:
类中成员:
1,变量
2,函数
3,构造函数
*/
class Fu //父类
{
int num=4;
}
class Zi extends Fu//子类
{
int num=5;
void show()
{
System.out.println(super.num);
}
}
重载:只看用名函数的参数列表
重写:子父类方法要一模一样
class ExtendsDemo3
{
public static void main(String[] args)
{
Zi z=new Zi();
z.show();
z.speak();
}
}
/*
当子类继承了父类,沿袭了父类的功能到子类中,
但是子类虽具备该功能,但是功能的内容却和父类不一致,
这时,没有必要定义新功能,而是使用覆盖
*/
class Fu
{
private int num=4;
public void setNum(int num)
{
this.num=num;
}
public int getNum()
{
return num;
}
void show()
{
System.out.println("fu show");
}
void speak()
{
System.out.println("vb");
}
}
class Zi extends Fu
{
void show()
{
System.out.println("zi show");
}
void speak()
{
System.out.println("java");
}
}
class Tel
{
void show()
{
System.out.println("number");
}
}
class NewTel extends Tel //继承TEL来更新功能,也就是覆盖
{
void show()
{
super.show();//使用父类的
System.out.println("name");//子类对父类的扩展,更新。
System.out.println("pic");
}
}