网站首页 > 精选教程 正文
继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模
关键字extends:扩展,子类是父类的扩展
JAVA中类只有单继承,没有多继承!!
继承是类和类之间的一种关系,除此之外,类和类之间的关系还有依赖、组合、聚合等。继承关系的两个类,一个为子类(派生类),一个为父类(基类),子类继承父类。
public class Person /*extends Object*/ {
//default、protected
//private
private String name;
private int age;
//public
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public int getAge() { return age; }
public void setAge(int age) { this.age = age; }
public void say(){
System.out.println("i am a man");
}
}
public class Student extends Person{
}
public class Application {
public static void main(String[] args) {
Student s = new Student();
s.say();
System.out.println(s.getAge());
}
}
Object类
Java Object 类是所有类的父类,也就是说 Java 的所有类都继承了 Object,子类可以使用 Object 的所有方法。
Object 类位于 java.lang 包中,编译时会自动导入,我们创建一个类时,如果没有明确继承一个父类,那么它就会自动继承 Object,成为 Object 的子类。
Object 类可以显示继承(使用extends),也可以隐式继承(默认)
super
- super可以用来引用直接父类的实例变量。
public class Person {
protected String name = "xiaoming";
}
public class Student extends Person{
private String name = "xiaohong";
public void test(String name){
System.out.println(name);
System.out.println(this.name);
System.out.println(super.name);
}
}
public class Application {
public static void main(String[] args) {
Student s = new Student();
s.test("xiaolan");
}
}
输出结果:
?
- super可以用来调用直接父类方法。
public class Person {
protected void print(){
System.out.println("Person");
}
}
public class Student extends Person{
public void print(){
System.out.println("student");
}
public void test(){
this.print();
super.print();
}
}
public class Application {
public static void main(String[] args) {
Student s = new Student();
s.test();
}
}
输出结果:
?
- super()可以用于调用直接父类构造函数。
public class Person {
public Person(){
System.out.println("Person的无参构造");
}
}
public class Student extends Person{
public Student(){
//隐藏代码:调用了父类的无参构造
super();//调用父类构造器,必须要在子类构造器的第一行
System.out.println("Student的无参构造");
}
}
public class Application {
public static void main(String[] args) {
Student s = new Student();
}
}
输出结果:
super注意点:
- super调用父类的构造方法,必须在构造方法的第一个。
- super必须只能出现在子类的方法或者构造方法中。
- super和this不能同时调用构造方法
super对比this:
- 代表对象不同:
- this:本身调用者这个对象
- super:代表父类对象
- 前提:
- this:没有继承也可以使用
- super:只能在继承条件才可以使用
- 构造方法:
- this();本类的构造
- super();父类的构造
?
- 上一篇: 大数据编程入门:Java继承
- 下一篇: 深入理解Java的继承特性
猜你喜欢
- 2024-11-27 JAVA面向对象的三大特征——继承
- 2024-11-27 JAVA中的注解可以继承吗?
- 2024-11-27 学长带你学习java第三课——继承
- 2024-11-27 java技术专家带你深入java核心技术:反射+继承设计技巧+枚举类
- 2024-11-27 【编程】Java中的继承和多态,你了解多少?
- 2024-11-27 Java开发:java面向对象思想之继承
- 2024-11-27 用最通俗易懂的例子讲明白继承和组合的本质区别
- 2024-11-27 java继承的概念是什么?
- 2024-11-27 java基础-3-继承
- 2024-11-27 Java小白成长记:Java如何实现封装、继承、解析解构
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)