JAVA继承类包要import吗,This/导包/继承/重写

Lesson Nine                          2018-04-27  02:05:08

this:

1.可以用来修饰属性、方法、构造器

2.this理解为当前对象或当前正在创建的对象.比如:this.name,this.show();

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 class TriAngle{

2 private double base;

3 private double height;

4

5 public TriAngle(){

6 base =1.0;

7 height = 1.0;

8 }

9 public TriAngle(double height, double base){

10 this.base = base;

11 this.height=height;

12 }

13

14 public double getBase(){

15 return base;

16 }

17 public double getHeight(){

18 return height;

19 }

20 public void setBase(double base){

21 this.base = base;

22 }

23 public void setHeight(double height){

24 this.height = height;

25 }

26 public double findArea(){

27 return this.height*this.base/2;

28

29 }

30 }

修饰属性、方法

3.可以在构造器中通过“this(形参)”的方式显示的调用本类中其它重载的指定的构造器。

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 class Person {

2 private String name;

3 private int age;

4

5 public Person() {

6 name = "Lucy";

7 }

8

9 public Person(String name) {

10 System.out.println("");

11 this.name = name;

12 }

13

14

15 public Person(String name, int age) {

16 this(name);

17 System.out.println("");

18 this.age = age;

19 }

修饰构造器

总结:

1、表示对当前对象的引用!

2、表示用类的成员变量,而非函数参数,注意在函数参数和成员变量同名是进行区分!其实这是第一种用法的特例,比较常用,所以那出来强调一下。

3、用于在构造方法中引用满足指定参数类型的构造器(其实也就是构造方法)。但是这里必须非常注意:只能引用一个构造方法且必须位于开始!

4、若一个类中有n个构造器,那么最多有n-1个构造器中使用了this(形参);

import:

* 1)显式导入指定包下的类或接口

* 2)写在包的声明和源文件之间

* 3)如果需要引入多个类或接口,那么就并列写出

* 4)如果导入的类是java.lang包下的,如:System String Math等,就不需要显式的声明。

* 5)import static 表示导入指定类的static的属性或方法

* 6)导入java.lang.*只能导入lang包下的所有类或接口,不能导入lang的子包下的类或接口

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 import java.util.ArrayList;

2 import java.sql.Date;

3 import java.util.Date;

4 import java.util.List;

5 import java.util.Scanner;

6 import java.util.*;

7

8

9 public static void main(String[] args) {

10

11 java.util.Date d = new java.util.Date();

12 java.sql.Date d1 = new java.sql.Date(1);

13

14 Scanner scanner = new Scanner(System.in);

15 List list = new ArrayList();

16 }

包的导入

继承:

1.为什么要设计继承?!

extends:子类是对父类功能的“扩展”,明确子类不是父类的子集。

2.通过“class A extends B”类实现类的继承 A:子类,B:父类(基类/SuperClass)

1 public class Student extends Person{ }

3.子类继承父类以后,父类中声明的属性,方法, 子类就可以获取到。

4.当父类中有私有的属性或方法时,子类同样可以获取得到,

只是由于封装性的设计,使得子类不可以直接调用。

5.子类除了通过继承,获取父类的结构之外,还可以定义自己的特有成份 如:方法、属性。

6.java中类的继承性只支持单继承,即:一个子类只能继承一个父类。反之,一个父类可以有多个子类

7.子类父类都是相对的概念。

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 package Person;

2

3 public class Person {

4 private String name;

5 private int age;

6

7 public String getName() {

8 return name;

9 }

10

11 public void setName(String name) {

12 this.name = name;

13 }

14

15 public int getAge() {

16 return age;

17 }

18

19 public void setAge(int age) {

20 this.age = age;

21 }

22

23 public void eat() {

24 System.out.println("Eating!");

25 }

26

27 public void walk() {

28 System.out.println("walking");

29 }

30

31 }

父类

方法的重写(override overwrite):对父类同名方法的重写、覆盖

格式:修饰符 返回值类型 方法名 (参数列表) {}

1.前提:有子类继承父类

2.子类继承父类以后,若父类的方法对子类不适用,

那么子类可以对父类的方法重写(覆盖)

3.重写的规则:

3.1要求子类方法的“返回值类型 方法名 (参数列表)”与父类的一样

3.2子类方法的修饰符权限不能小于父类

3.3*若父类方法抛异常,那么子类方法抛的异常类型不能大于父类的。

3.4*子父类的方法必须同为static或同为非staticc的。

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 package Person;

2

3 public class Student extends Person{

4

5 private String school;

6

7 public Student() {

8

9 }

10

11 public Student(String name, int age) {

12

13 getAge();

14 this.setName(name);

15 this.setAge(age);

16 }

17

18

19 public void eat(){

20 System.out.println("I'm Eating!");

21 }

22 public void walk(){

23 System.out.println("I'm walking");

24 }

25 public void show() {

26 System.out.println("I'm a Student!");

27

28 }

29

30 }

子类

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值