Java基础——类的继承
2021-04-07 19:27
标签:直接 object 就是 logs 相关 另一个 java项目 poi 抽象方法 前提: 疑问: 解答: 继承:就是从已有类的基础上产生一个新的类。 解释: 修饰符 派生类继承自基类,当实例化派生类对象时,必须调用基类的构造方法,再调用派生类的构造方法。 JVM默认调用基类的无参构造方法,若基类没有无参构造方法,则报错 派生类构造方法中没有显式调用基类构造方法,则默认调用基类的无参构造方法。 在派生类中显式调用基类的构造方法,需要使用 用于引用基类中的属性或方法 派生类继承基类的属性和方法,除了可以新增成员外,还可以对基类的方法做修改。 方法重写: 派生类对基类中定义的方法进行重新实现。 Java基础——类的继承 标签:直接 object 就是 logs 相关 另一个 java项目 poi 抽象方法 原文地址:https://www.cnblogs.com/occlive/p/13378037.html继承
引入
一个类中包含了若干成员属性和成员方法;在不同的类中,成员属性和成员方法是不相同的。
已有类A,想创建类B;当两个类的内容基本相同的属性、行为基本相同,如何里实现代码的重用?
Java提供继承来实现代码的重用率,提高编程效率。继承
概念
已有类
新的类
父类
子类
超类
派生类
基类
如果一个类B继承自另一个类A
关系
Java
中的单重继承机制:一个类只能有一个直接基类Object
类是所有Java类的顶级基类final
修饰的类不能有派生类(String
是典型特例)语法
//class 子类名 extends 父类名{
// //扩充的属性和方法
//}
//父类
//猫
public class Cat{
//属性
private String color;
private String beard
//方法
public void catchMouse(){
System.out.println("捉老鼠");
}
}
//子类
//缅因猫
public class MaineCoon extends Cat{
//补充的属性
private String shape;
//补充的方法
public void spoiled(){
System.out.println("撒娇");
}
}
过程
继承的访问
访问权限修饰符
本类内
子类内
本类和子类外
public
private
protected
同包不同包
protected
基类中的某个方法或者属性,只允许派生类或者同包中的类访问.
在类外不能访问派生类内部访问基类的成员
private
类型的成员。//父类
public class Cat{
//子类可直接访问
public int id;
project String name;
//无法直接访问
private Color color;
//通过公有接口访问
public void setColor(Color color){
this.color = color;
}
public Color getColor(){
return color;
}
}
继承的构造方法
super
关键字super
引用
使用
private
属性
super()
super(参数)
super.方法名(参数)
调用基类非private
方法,位置不固定//父类
//猫
public class Cat{
//属性
public int id;
private String color;
private String beard
//构造方法
public Cat(){
this.color = "橘色";
this.beard = "长的";
}
//方法
public void catchMouse(){
System.out.println("捉老鼠");
}
}
//子类
//缅因猫
public class MaineCoon extends Cat{
//补充的属性
private String shape;
public MaineCoon(){
super();//第一行
//调用属性
//只能调用非private
super.id = 1;
//方法
super.catchMouse();
}
//补充的方法
public void spoiled(){
System.out.println("撒娇");
}
}
注意
super()
只能放在派生类构造方法的第一行
super
只能访问基类中非private
的属性和方法方法重写
概念
作用:就是在不改变原来代码的基础上可以对其中任意模块进行改造。规则
final
修饰的基类方法注意
包
学习完继承后,已经能用代码实现一些小项目
对于一个合格的项目来说,包是至关重要的
通过包对类进行分类,可以极大简化整理项目代码
包的知识
Java语言的其他特性
继承作为Java语言三大特性,地位非常重要。
了解完继承后,不如再看看同样重要的其他特性
封装和多态,期待你的批评指导??
封装
多态
博客相关java项目:查看Github项目
对应github项目:Demo4
导入项目的方法: Java基础——Java如何导入本地项目