Java基础-继承
2021/4/10 12:30:25
本文主要是介绍Java基础-继承,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
**1.方法重写概念: 子父类成员方法的特殊情况—-覆盖
子类中出现与父类一某一样的方法时,会出现覆盖操作,也称之为:override重写 复写或者覆盖.
通俗的说就是子类要使用父类中的功能,同时自己又有自己特有的功能.
重写需要注意的问题: 子类方法覆盖父类方法,必须要保证权限大于等于父类的权限. 权限有四种,最大的时public ,最小的时private.
2.方法重写和方法重载的比较:
方法重写: 子父类中,方法声明,方法名,参数列表和返回值类型,必须一某一样
方法重载:同一个类,方法声明,方法名一样,参数列表不一样,跟返回值无关
3.this与super
当子类创建对象后,该子类对象本身可以使用this代替,而该对象当中的父类对象空间,可以使用super来代替.
以person为类,创建一个人的父类,创建一个中国人子类,创建一个Test 作为测试,打印小明18岁来自科技研究院
public class Person {
private String name; private int age; public Person(){} public Person(String name,int age) { this.name = name; this.age = age; } }
public class Chinese extends Person{
private String address;
public Chinese(){}
public Chinese(String name,int age,String address) {
super(name,age);
this.address = address;
}
}
public class Test{
Chinese c = new Chinese(“小明”,18,”中国科技研究院”);
}
4.this 与super调用普通成员与构造方法
调用普通成员:
this.成员变量 可以访问本类对象的成员变量
super.成员变量 可以访问父类对象的成员变量
this.成员方法() 可以访问本类对象的成员方法
super.成员方法() 可以访问父类对象的成员方法
调用构造方法:
this(其他参数) 可以访问本类其他的构造方法
super(其他参数) 可以访问父类其他的构造方法
构造方法:
无法继承,默认调用父类无参构造
super():表示访问父类无参构造方法
super(参数) :表示访问父类有参构造方法
举例: 用代码实现如下语句:使用继承的方法,不使用抽象:
工资为8000元的30岁的王小平正在吃饭
工资为8000元的30岁的王小平老师在讲课
成绩为90.0分的14岁的小王在吃学生餐
成绩为90.0分的14岁的小王学生在学习
1.定义一个Person类:
public class Person {
private String name;
private int age;
public Person(){}
public Person(String name,int age){
this.name = name ;
this.age = age;
} 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 eat(){ System.out.println(age+"岁的"+name+"在吃饭"); }
}
2.定义一个Teacher类:
public class Teacher extends Person {
private int salary;
public void eat(){
System.out.println(“工资为”+salary+”元的”+getAge()+”岁的”+getName()+”正在吃饭”);
}
public void lecture(){
System.out.println(“工资为”+salary+”元的”+getAge()+”岁的”+getName()+”老师在讲课”);
}
public Teacher(){}
public Teacher(String name,int age,int salary){
super(name,age); this.salary = salary; } public int getSalary() { return salary; } public void setSalary(int salary) { this.salary = salary; }
}
3.创建一个学生类:
public class Student extends Person{
private double score; public void eat(){ System.out.println("成绩为"+score+"分的"+getAge()+"岁的"+getName()+"在吃学生餐"); } public void study(){ System.out.println("成绩为"+score+"分的"+getAge()+"岁的"+getName()+"学生在学习"); } public Student(){} public Student(String name ,int age,int score){ super(name,age); this.score = score; } public double getScore() { return score; } public void setScore(double score) { this.score = score; }
}
4.测试:
public class test01 {
public static void main(String[] args) {
Teacher t = new Teacher();
t.setName(“王小平”);
t.setAge(30);
t.setSalary(8000);
t.eat();
t.lecture();
Student s = new Student(“小王”,14,90);
s.eat();
s.study();
}
}**
这篇关于Java基础-继承的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-29RocketMQ底层原理资料详解:新手入门教程
- 2024-11-29RocketMQ源码资料解析与入门教程
- 2024-11-29[开源]6.1K star!这款电视直播源神器真的太赞啦!
- 2024-11-29HTTP压缩入门教程:轻松提升网页加载速度
- 2024-11-29JWT开发入门指南
- 2024-11-28知识管理革命:文档软件的新玩法了解一下!
- 2024-11-28低代码应用课程:新手入门全攻略
- 2024-11-28哪些办公软件适合团队协作,且能够清晰记录每个阶段的工作进展?
- 2024-11-28全栈低代码开发课程:零基础入门到初级实战
- 2024-11-28拖动排序课程:轻松掌握课程拖动排序功能