一、类的继承
①类的继承的概念
java类的继承可用下面的语句来表示
class 父类 //定义父类
{ }
class 子类 extends 父类 //用extends关键字实现类的继承
{ }
example:
<span style="font-size:18px;"> </span><span style="font-family:Times New Roman;font-size:14px;">package projiect;
class Study
{
String name;
}
class Hard extends Study
{
String result;
}
public class test1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Hard s=new Hard();
s.name="我";
s.result="爱学习";
System.out.println(s.name+s.result);
}
}</span>
结果:我爱学习
当然还有多层继承(父类A)——(父类B)——(父类C)——子类,可用写成如下:
class A
{ }
class B extends A
{ }
class C extends B
{ }
example:
<span style="font-family:Times New Roman;font-size:14px;">package projiect;
class Person
{
String name;
int age;
public String talk()
{
return "我是:"+this.name+",今年:"+this.age+"岁";
}
}
class Student extends Person
{
String school;
public Student(String name,int age,String school)
{
super.name=name;
super.age=age;
System.out.print(super.talk());
this.school=school;
}
}
public class test1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Student s=new Student("小明",23,"UCAS");
System.out.println(",学校:"+s.school);
}
}</span>
结果:我是:小明,今年:23岁,学校:UCAS
如果要限制子类继承父类的话,在父类中,可以用 private 申请私有变量。
二、类的多态性
直接用一个范例介绍多态性
<span style="font-family:Times New Roman;font-size:14px;">package projiect;
class Person
{
public void talk1()
{
System.out.print("我是小明");
}
public void talk2()
{
System.out.print(",老师让我滚出去!");
}
}
class Student extends Person
{
public void talk3()
{
System.out.print("我是小明");
}
public void talk2()
{
System.out.print(",我让老师滚出去!");
}
}
public class test1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Person p=new Person(); //优先用父类Person里面的函数
p.talk1();
p.talk2();
}
}</span><span style="font-family:KaiTi_GB2312;font-size:18px;">
</span>
结果为:我是小明,老师让我滚出去!
如果把Person p=new Person();改为Person p=new Student();//这是优先利用子类Student中的函数。
结果为:我是小明,我让老师滚出去!