Java面向对象-继承性
面向对象特征之二:继承性
*
* 继承的好处
* ①减少代码的冗余,提高了代码的复用性
* ②便于功能的扩展
* ③为多态性的使用,提供了前提
*
* 二、继承性的格式 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("学习"); } }