Java(16)继承(面向对象特征二)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java(16)继承(面向对象特征二),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2481字,纯文字阅读大概需要4分钟。
内容图文
![Java(16)继承(面向对象特征二)](/upload/InfoBanner/zyjiaocheng/626/5e1bceca409641229b2a5ee93f5d7d91.jpg)
继承(面向对象特征二)
Java使用extends
关键字来实现继承
package test;
public class Person {
private int age;
private String name;
public void fun1(){
System.out.println(this.name+" "+this.age);
}
public int getAge() {
return age;
}
public String getName(){
return name;
}
public void setAge(int age) {
this.age = age;
}
public void setName(String name) {
this.name = name;
}
}
//下面让Student继承Person类
class Student extends Person{
public static void main(String[] args) {
Student a=new Student();
a.setName("Jimmy");
a.setAge(18);
System.out.println(a.getName()+" : "+a.getAge());
//我们可以看到,Student并没有自己创建name,age,但是从Person类继承过来了
}
}
//执行结果为Jimmy : 18
在OOP(object-oriented programming
面向对象编程)的术语中,我们把Person
称为超类(super class),父类(parent class),基类(base class),把Student
称为子类(subclass),扩展类(extended class)
继承树
JAVA的每一个类只允许拥有一个父类,任何类,除了object,都会继承一个类。因此,除了object没有父类,Java中任何一个类有且只有一个父类。
在继承中使用protected
子类可以从父类继承属性和方法,但如果父类的属性和方法用private
修饰时,则子类无法访问父类的东西,这就使得继承的作用被削弱了,如果想让子类可以访问父类,可以将父类中的private
非访问修饰符改为protected
。
- 案例:使用private,访问父类失败。
package test;
public class Person{
private int age=10;
}
class Student extends Person{
public void test(){
System.out.println(age);
//age此处会显示错误:age' has private access in 'test.Person'
}
}
- 案例:使用protected,访问父类成功。
//----------------------方法1----------------------------
package test;
public class Person{
protected int age=10;
}
class Student extends Person{
public void test(){
System.out.println(age);
}
}
class RunTest{
public static void main(String[] args) {
Student a =new Student();
a.test();
}
}
//----------------------方法2----------------------------
/*
注意上面是用public修饰的test() 方法来访问父类属性,
如果使用static的main方法来访问,则需要new一个Person对象出来才行
*/
package test;
public class Person{
protected int age=10;
}
class Student extends Person{
public static void main(String[] args) {
Person b=new Person();
System.out.println(b.age);
}
}
在继承中使用super关键字
如果父类没有默认的构造方法,子类就必须显式调用super()
并给出参数以便让编译器定位到父类的一个合适的构造方法。
//详情请查看 super关键字 一级标题里的内容
这里还顺带引出了另一个问题:即子类不会继承任何父类的构造方法。子类默认的构造方法是编译器自动生成的,不是继承的。
单继承与多继承
Java只支持单继承,多层继承,不允许多重继承。就是说,一个子类只能有一个父类。
内容总结
以上是互联网集市为您收集整理的Java(16)继承(面向对象特征二)全部内容,希望文章能够帮你解决Java(16)继承(面向对象特征二)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。