java面向对象5-继承
继承是面向对象最显著的一个特性。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。 Java继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。这种技术使得复用以前的代码非常容易,能够大大缩短开发周期,降低开发费用。
继承使用extends关键字实现
class Person {
String name;
int age;
// 静态变量(类变量)对象和对象之间的代码重复使用静态变量
static String country = "CN";
Person() {
}
void speak() {
System.out.println(name + ":哈哈,我是人!!!");
}
}
// 让学生类和人类产生关系,发现学生is a 人,就可以使用继承
class Student extends Person {
Student() {
}
void study() {
System.out.println("姓名:" + name + "年纪:" + age + ":好好学习");
}
}
class Worker extends Person {
void work() {
System.out.println(name + ":好好工作,好好挣钱。");
}
}
class Demo1 {
public static void main(String[] args) {
Student stu = new Student();
stu.name = "jack";
stu.age = 20;
stu.study();
stu.speak();
System.out.println(stu.country);
System.out.println(Student.country);
Worker worker = new Worker();
worker.name = "rose";
System.out.println(worker.country);
worker.work();
worker.speak();
System.out.println();
}
}
总结:
子类并不能继承父类中所有的成员
1.父类定义完整的成员 静态成员,非静态,构造方法。静态变量和静态方
法都可以通过子类名.父类静态成员的形式调用成功。
2.所有的私有成员不能继承,private修饰的成员。
3.构造函数不能被继承
继承讲究的是两个类之间有…is…a…的关系。不应该为了功能而继承。毕竟他只能继承一个父类。