---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------
一、继承的概述
1、什么是继承?
三、super关键字
super关键字的用法和this关键字的用法几乎一致。
this关键字代表的是本类对象的引用;super关键字代表的是父类对象的引用。
四、函数的覆盖
1.什么是函数的覆盖?
当子类中出现和父类中一模一样的函数时,子类对象调用该函数,会运行子类函数中的内容。这种情况成为函数的覆盖或者重写。
父类中私有的方法子类无法覆盖。因为子类访问不到父类私有的数据。
在子类覆盖方法中,想要继续使用被覆盖的方法时,可以通过super.方法名调用。
当子类继承父类,便沿袭了父类的功能到子类中。子类虽具备该功能,但是功能的内容却和父类不一致,这时,没有必要定义新的功能,而是使用覆盖特性,保留父类的功能定义,并重写子类特有的功能内容。比如下面代码中Student类继承People类,People类有一个回家的方法:goHome(),Student类也有回家的方法,但是Student类想特别说明自己是坐公交车回家,就可以重写People类的goHome()方法,这就是函数的覆盖的体现。
People类:父类
package cn.itcast.ch03;
/**
* 人类,学生类的父类
* @author 中关村阿旺
*
*/
public class People {
private String name; //姓名
private int age; //年龄
private String sex; //性别
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public People(){
}
public People(String name,int age,String sex){
this.setName(name);
this.setAge(age);
this.setSex(sex);
}
//回家的方法
public void goHome(){
System.out.println("回家。");
}
}
Student类:子类
package cn.itcast.03;
/**
* 学生类
* @author 中关村阿旺
*
*/
public class Student extends People{
private String className; //班级名称
//获得班级名称
public String getClassName() {
return className;
}
//设置班级名称
public void setClassName(String className) {
this.className = className;
}
//在教室上课的方法(学生类特有的方法)
public void inClassRoom(){
System.out.println("学生的姓名:"+this.getName()+",年龄:"+this.getAge()+",性别:"+this.getSex()+",所在班级:"+getClassName()+",正在听课!");
}
public Student(){
super();
}
public Student(String name,int age,String sex,String className){
super(name,age,sex);
this.setClassName(className);
}
//重写了父类中回家的方法
@Override
public void goHome() {
System.out.println("坐公交。");
}
}
2、覆盖时的注意事项:
1)子类覆盖父类,必须保证子类权限大于等于父类权限,才可以覆盖,否则编译失败。
2)静态方法只能覆盖静态方法。
3、方法的覆盖(重写)与方法的重载的区别:
方法的重写必须保证子父类的方法名称一模一样。
方法的重载只看同一类中同名函数的参数列表。
五、子类的实例化过程
六、final关键字
八、接口
3、接口的特点:
4、接口与抽象类的共性与区别:
共性:都是不断抽取出来的抽象的概念。
区别:
---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------
详细请查看:<a href="http://edu.csdn.net" target="blank">http://edu.csdn.net</a>