📄 21.txt
字号:
//
类继承语法规则:
< modifier> class < name> [extends < superclass>] {
< declarations>*
}
Object类是所有Java类的最高层父类
Java只支持单继承,不允许多重继承
一个子类只能有一个父类
一个父类可以派生出多个子类
//
访问控制
可以对Java类中定义的属性和方法进行访问控制----规定不同的保护等级:
Modifer Same Class Same Package Subclass Universe
private Yes
default Yes Yes
protected Yes Yes Yes
public Yes Yes Yes Yes
//
方法的重写
在子类中可以根据需要对从父类中继承来的方法进行改造----方法的重写
重写方法必须和被重写方法具有相同的方法名称、参数列表和返回值类型
重写方法不能使用比被重写方法更严格的访问权限
//
多态性
多态----在Java中,子类的对象可以替代父类的对象使用
一个对象只能有一种确定的数据类型
一个引用类型变量可能指向(引用)多种不同类型的对象
Person p = new Student();
Object o = new Person();
o = new Student();
一个引用类型变量如果声明为父类的类型,但实际引用的是子类对象,那么该变量就不能再访问子类中添加的属性和方法
Student m = new Student();
m.school = "pku"; //合法
Person e = new Student();
e.school = "pku"; //非法
//
正常的方法调用
Person e = new Person();
e.getInfo();
Student e = new Student();
e.getInfo();
虚拟方法调用(多态情况下)
Person e = new Student();
e.getInfo();
编译时类型和运行时类型
//
//Overload Test
import java.util.Date;
public class OverloadTest
{
public static void main(String[] args )
{
Date d = new Date();
Person p1 = new Person("a ",50,d);
p1.display();
}
}
class Person
{
private String name;
private int age;
private Date birthDate;
public Person(String name, int age, Date d)
{
this.name = name;
this.age = age;
this.birthDate = d;
}
public Person(String name, int age)
{
this(name, age, null);
}
public Person(String name, Date d)
{
this(name, 30, d);
}
public Person(String name)
{
this(name, 30);
}
public void display()
{
System.out.println(name + age + birthDate);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -