- 继承中成员变量访问特点:就近原则
System.out.println(name) | System.out.println(name) |
Sytem.out.println(this.name) | 从本类成员变量开始往上找 |
Sytem.out.println(super.name) | 从父类成员变量开始往上找 |
package Extends;
class Student{
public void eat(){
System.out.println("学生在吃饭");
}
}
class OverseaStudent extends Student{
@Override
public void eat(){
System.out.println("留学生在吃饭");
}
public void lunch(){
this.eat();
super.eat();
}
}
public class ExtensTest {
public static void main(String[] args) {
OverseaStudent os = new OverseaStudent();
os.lunch();
}
}
方法重写
当父类方法中,不能满足子类现在的需求时,我们就需要吧这个方法进行重写
注意:方法重写时上面要加上@Override
方法重写的本质,覆盖了虚方法表中的方法
继承中构造方法的特点
- 父类中构造方法不会被子类继承
- 子类中所有的构造方法Moore你先访问父类中的无参构造,再执行自己
- 子类构造方法的第一行默认都是:super(),不写也存在,且必须在第一行
- 如果想调用父类有参构造,必须手动写super()进行调用
this:理解为一个变量,表示当前方法调用者的地址值
super:代表父类存储空间
多态
多态: 同类型的对象,表现出不同形态
多态的表现形式: 父类类型 对象名称 = 子类对象
多态的前提:
- 有继承关系
- 有父类引用指向子类对象
- 有方法重写
//Person类
package PolymorphicStudy;
public class Person {
private String name;
private int age;
public Person() {
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
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 void show(){
System.out.println(this.getName() + this.getAge());
}
}
//Student类
package PolymorphicStudy;
public class Student extends Person{
public Student() {
}
public Student(String name, int age) {
super(name, age);
}
@Override
public void show(){
System.out.println("学生的信息为:" + this.getName() + ", " + this.getAge());
}
}
//Teacher类
package PolymorphicStudy;
public class Teacher extends Person{
public Teacher() {
}
public Teacher(String name, int age) {
super(name, age);
}
@Override
public void show(){
System.out.println("老师的信息为: " + this.getName() + ", " + this.getAge());
}
}
package PolymorphicStudy;
public class Test1 {
public static void main(String[] args) {
Student s = new Student("张三",18);
Teacher t = new Teacher("李四",40);
register(s);
register(t);
}
//这个方法既能接收老师,又能接收学生
public static void register(Person p){
p.show();
}
}
多态的好处:1. 使用父类型作为参数,可以接收所有子对象 2. 体现多态的扩展性和便利
,知识持续更新...
标签:Java,name,age,日历,多态,void,println,public,out From: https://blog.csdn.net/2301_80708596/article/details/140596028文章中照片来源为小破站黑马程序员