继承
继承(inheritance)是面向对象的重要概念。继承是除组合(composition)之外,提高代码重复可用性(reusibility)的另一种重要方式。我们在组合(composition)中看到,组合是重复调用对象的功能接口。我们将看到,继承可以重复利用已有的类的定义。
继承涉及到5个内容:
1、基类的继承(基类public数据成员和方法的继承)
2、衍生类成员的补充
3、基类与衍生层的成员访问(隐式参数this和super的使用)
4、基类与衍生类的方法覆盖
5、基类与衍生层的构造方法调用
用以下代码来解释
一、基本代码
先定义一个People类
package Inheritance;
class People
{
private String name;
private int age;
public People(String name, int age)
{
this.name = name;
this.age = age;
}
public String getName()
{
return this.name;
}
public int getAge()
{
return this.age;
}
public void showInfo()
{
System.out.println("My name is:" + this.name + ",my age is:" + this.age);
}
}
定义一个继承People类的Student类
package Inheritance;
// 用关键字extends实现继承
class Student extends People
{
// Student作为People的衍生类,可补充自有的数据成员sex、sexStr
private boolean sex;
private String sexStr;
public Student(String name, int age, boolean sex)
{
super(name, age);
// 隐式参数super可用于访问父类的构造方法、数据成员和方法
// 子类Student编写构造方法时,必须要调用父类People的构造方法
this.sex = sex;
// 隐式参数this可用于访问当前类内部的数据成员和方法
if (sex = true)
{
this.sexStr = "男";
}
else
{
this.sexStr = "女";
}
System.out.println("I am student!");
}
// 衍生类可覆盖父类的方法,外部类调用时Student的showInfo()方法时,不会同时调用父类的showInfo()方法
public void showInfo()
{
System.out.println("Student Infomation:");
System.out.println("My name is:" + super.getName() + ",my age is:" + super.getAge() + ",my sex is:"
+ this.sexStr);
}
}
然后我们用InheriTest类实现这两个类
package Inheritance;
public class InheriTest
{
public static void main(String[] args)
{
// TODO Auto-generated method stub
Student stu = new Student("J-Chen", 26, true);
stu.showInfo();
}
}
上面只写了继承的一些具体实现,上面的5个知识点,已经在注释中写到。
关于Java的继承的具体知识点,可以到网上搜,实在太多了,这里我就不做详述了。
网友评论