继承语法
在java中,实现继承的关系,通过下面语法来完成`
class 子类 extends 父类{}
理解继承
子类继承了父类的什么
继承基本实现
public class Person {
private String name;//姓名
private int age;//年龄
public void setName(String name) {
this.name=name;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
public class Student extends Person {//Student是子类
//没有定义任何功能
}
public class JavaDemo {
public static void main(String[] args) {
Student stu=new Student();
stu.setName("赵子龙");
stu.setAge(20);
System.out.println("name:"+stu.getName()+"\nage:"+stu.getAge());
}
}
实现效果如下:
继承限制
1.单根继承
一个子类只能继承一个父类。在java中不允许子类继承多个父类
2在一个子类继承一个父类时,会继承父类的所有操作(属性,方法),但是
对于private所修饰的成员,只能使用set/get进行操作。
方法重写
在类结构中,子类可以继承父类中的全部方法,当父类某些方法无法满足子类设计需求是,就可以针对已有的方法进行扩充,那么此时在子类中定义与父类中除方法体外,其它都相同的方法时,称为方法重写
方法重写基本实现代码如下:
public class Person {
public void eat() {
System.out.println("我是人,我会吃饭");
}
}
public class Student extends Person {
public void eat() {
System.out.println("我是一名学生,我会吃饭");
}
}
public class JavaDemo {
public static void main(String[] args) {
stu.eat();
}
}
实现下过如下图:
方法重写限制
父类方法定义private时,子类无法重写此方法。
向上向下转型
向上转型:子类向父类转换
向下转型:父类向子类转换
代码实现:
public class Person {
public void run() {
System.out.println("快跑啊");
}
}
public class Superman extends Person {
public void fly() {
System.out.println("空中飞行");
}
public void fire() {
System.out.println("吃我激光");
}
}
public class JavaD {
public static void main(String[] args) {
System.out.println("妖怪来了");
Person per =new Superman();//此时超人是一个人,向上转型
per.run();//调用人的跑步功能,此时没有特异功能,要跑
Superman spm=(Superman) per;//向下转型,强转为子类。变身超人
spm.fly();
spm.fire();
}
}
运行结果:
本程序子类利用对象向上转型为了父类对象,此时Person类只能调用本类和父类的方法,如过需要调用子类扩充的方法,就要向下转型。