Java最不容易明白的知识点【继承】


在Java中使用关键字extends来实现继承,下面的代码定义了一个新的类Student,它继承了最初定义的People类:

这是一个很经典的代码例子

public class Student extends People{ 
private String sId; //学号
//Constructor 
public Student() { 
this("","",""); 
} 
 public Student(String name,String id,String sId){ 
super(name,id); 
this.sId = sId; 
} 
public void sayHello(){ 
super.sayHello(); 
   System.out.println("I am a student of department of computer science."); 
} 
 //get & set method 
public String getSId(){ 
return this.sId; 
} 
 public void setSId(String sId){ 
this.sId = sId; 
} 
} 

从上面代码解释几个非常困惑新手的问题:

第一个问题:

代码中使用了关键字super,super究竟是什么意识,为什么要用super?

super关键字主要有两个作用,一是调用父类的构造方法,二是调用父类的方法。记住了,一个是构造方法,一个是方法,而且super只负责调用父类

第二个问题:

子类比父类具有更多的属性和功能。“is-a”规则表明子类的每个对象都是父类的对象,例如每个学生都是人。因此,无论何时只要在程序中需要一个父类对象时都可以使用一个子类的对象来替代它,反过来则不行。

例如,可以把子类的对象赋给父类变量:
People p = new Student(“godkun”,”007”,”1314520”);

第三个知识点是:

在Java中有一个非常特殊的预定义类,那就是Object类。在Java中Object类是所有类的祖先,每个类都有Object类扩展而来。
在定义类时如果不指定父类,则Java会自动把Object类作为要定义类的父类。

例如People类就是Object类的子类。
因此可以使用Object类的变量引用任意类型的对象。
代码如下
Object obj = new People(“Jack”,”0001”);
很多人知道Objcet是祖先,可是不知道可以这么用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值