网站首页 > java教程 正文
继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模
关键字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编程思想:继承的语法(java编程原则)
猜你喜欢
- 2024-10-03 Java中的继承关系(java中的继承关系是)
- 2024-10-03 Java面向对象之继承(java面向对象继承例题)
- 2024-10-03 「Java入门」十八 面向对象的三大特征之一-继承
- 2024-10-03 [Java基础]09.继承(java基础案例教程第二版)
- 2024-10-03 Java中的继承、封装、多态 #Java开发
- 2024-10-03 Java中的继承与组合(java中继承的概念以及使用继承的好处)
- 2024-10-03 《极简Java新手编程之道》8.1.1 Java语言中实现继承
- 2024-10-03 Java:类与继承(java类与继承抽象类)
- 2024-10-03 Java基础——面对对象-继承(面对对象的特征有哪些方面java基本数据类型有哪些)
- 2024-10-03 你真的熟悉Java中的继承与多态?给你几分钟能回答上来?
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)