面向对象特征之二:继承性
*
* 继承的好处
* ①减少代码的冗余,提高了代码的复用性
* ②便于功能的扩展
* ③为多态性的使用,提供了前提
*
* 二、继承性的格式 class A extends B{}
* A:子类,派生类,subclass
* B:父类,超类,基类,superclass
*
* 体现:一旦子类A继承父类B以后,子类A中就获取了父类B中非private的结构:属性、方法
* private的结构,子类其实也获取到了。只是由于封装性影响不能直接调用
*
* 子类继承父类以后,还可以定义自己的属性或方法,实现功能的扩展
*
* 三、Java中关于继承的规定
* 1.允许多重继承
* 2.不允许多继承类,一个类只能有一个父类(单继承)
* 3.一个类可以被多个类继承(不同类继承同一个类)

* 说明:java中使用接口实现多继承
public class ExtendsTest {
public static void main(String[] args) {
Student s1=new Student();
s1.eat();
s1.getWeight();
s1.setWeight2(120);
s1.getWeight();
}
}
class Person
{
String name;
int age;
private float weight=100;
public Person() {
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public void eat()
{
System.out.println("吃饭");
}
public void sleep()
{
System.out.println("睡觉");
}
//展示子类也能继承父类的private属性
public void getWeight()
{
System.out.println(weight);
}
private void setWeight(int weight)
{
this.weight=weight;
}
//展示子类也能继承父类的private方法
public void setWeight2(int weight)
{
setWeight(weight);
}
}
//class Student
//{
// String name;
// int age;
// String major;
//
// public student() {
// }
//
// public student(String name, int age, String major) {
// this.name = name;
// this.age = age;
// this.major = major;
// }
//
// public void eat()
// {
// System.out.println("吃饭");
// }
// public void sleep()
// {
// System.out.println("睡觉");
// }
// public void study()
// {
// System.out.println("学习");
// }
//}
//继承写法
class Student extends Person{
String major;
public Student() {
}
public Student(String name, int age, String major) {
super(name, age);
this.major = major;
}
public void study()
{
System.out.println("学习");
}
}