Java基础第五章面对对象二之继承性(inheritanc)
学习本节内容后更加增强自己对继承的理解,自己手动实践
第五章 Java基础入门第五章之继承性的理解与使用
目录
Java基础第五章面对对象二之继承性(inheritanc)
说明继承获取到了,只是由于封装性的影响无法显示与使用(不可见)
前言
提示:介绍继承性和Object类的引入
继承:它允许我们在已有类的基础上创建新的类,并且从父类中继承属性和方法。这种技术让代码变得更加简洁、灵活和可维护。
一、继承是什么?
Java中继承是一种机制,允许一个类(子类)继承另一个类(父类)的属性和方法。子类可以重写父类的方法,并且可以使用父类中定义的公共和受保护的属性和方法。继承使得代码重用更加容易,并且可以通过创建一个通用的父类来简化整个类层次结构。在Java中,使用关键字“extends”来实现继承。例如:
```
public class Animal {
public void move() {
System.out.println("Animals can move");
}
}
public class Dog extends Animal {
public void move() {
System.out.println("Dogs can walk and run");
}
}
```
在这个例子中,Dog类继承了Animal类的move()方法,并覆盖了它。Dog类也可以使用Animal类中定义的所有公共和受保护的属性和方法。
二、继承的好处是什么?
1.减少了代码的冗余,提高代码的复用性
2.便于功能扩展
3.为多态性提供前提
三、使用方式
3.1.继承的格式
class A extends B { }
A:子类,派生类(subclass)
B:父类,超类,基类(superclass)
体现:一旦子类A继承父类B以后,子类A就获取了父类B中声明的所有属性和方法
声明一个父类Person
package exer;
public class Person{
String name;
int age;
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("睡觉");
}
}
声明一个子类Student
package exer;
public class Student extends Person {
String major;
public void study() {
System.out.println("学习");
}
}
package exer;
public class ExtendsTest {
public static void main(String[] args) {
Person p1 = new Person();
p1.age =1;
p1.eat();
Student s1 = new Student();
s1.eat();
s1.sleep();
s1.study();
}
}
/*
人能吃饭
人能吃饭
睡觉
学习*/
3.2思考:如果父类有一个私有的属性呢?继承到了吗?
private int age;
答案是继承了,我们可以去用代码块实现:
我们在父类Person中定义一个 get set 方法 去获取这个私有属性,子类Student中同样继承这个方法我们就在mian方法中去设置并输出,看是否能赋值。
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
int i = s1.getAge();
int i = s1.getAge();
System.out.println(i);
//10
说明继承获取到了,只是由于封装性的影响无法显示与使用(不可见)
3.3子类可以扩展自己功能
比如3.2代码块中子类Student中有扩展的方法study()
ps:extends(英文翻译:延展,中文理解;继承)
4.Java规定(单继承,多层继承)
4.1一个类可以被多个子类继承(延展)
4.2单继承:一个类只能有一个父类 (ps:C++可以支持多继承但Java不允许)
4.3 多层继承:子类父类是一个相对的概念,(ps:你,你爸爸,你爷爷:你是你爸儿子,你爸是你爷爷儿子,相对概念)
4.4那么ABC中C是A的谁呢 Java中称为间接父类 B是A的直接父类
4.5子类继承父类时候,子类就继承了直接父类和间接父类的所有功能和方法(ps:人类祖先根据达尔文进化论来说是类人猿,我们所有人大都继承了间接父类吧)
5.Object类
5.1 我们如果没有显式的声明一个类的父类的话,则此类就继承与java.lang.Object类
5.2 所有java类(除了java.lang.Object类之外的)都直接和间接继承java.lang.Object类
5.3 意味着所有java类都具有此类的功能
总结
继承性:
Java中的继承性是一种面向对象编程的核心概念之一。它允许我们在已有类的基础上创建新的类,并且从父类中继承属性和方法。这种技术让代码变得更加简洁、灵活和可维护。在Java中,继承性以类的层次结构的形式呈现,其中一个类可以作为另一个类的子类或派生类。子类可以继承父类的属性、方法和行为,并且可以在不改变父类行为的情况下扩展父类的功能。Java支持单继承,一个子类只能有一个直接的父类,但是可以通过实现接口来实现多重继承。在Java中,继承性也是实现代码重用和抽象数据类型的重要方式。