「JAVA继承性案例」java中继承类

博主:adminadmin 2022-12-05 05:33:09 87

今天给各位分享JAVA继承性案例的知识,其中也会对java中继承类进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

Java 继承的实例

class parent{

parent(){

xxx

}

}

class son extends parent{

}

最简单的就是这样的

希望有帮助!

求JAVA封装和继承案例?

封装性是整个面向对象的第一大特性,所谓的封装性是指类内部的操作对外部不可见。

范例:观察如下的程序问题

class Person { // 类名称的单词首字母必须大写

String name ; // 姓名,是一个字符串所以使用String

int age ; // 年龄是一个整数,所以使用int

public void tell(){ // 定义一个方法

System.out.println("姓名:" + name + ",年龄:" + age) ;

}

}

public class ClassDemo {

public static void main(String args[]){

Person per = new Person() ;

per.name = "张三" ;

per.age = -30 ;

per.tell() ;

}

}

此时的程序从技术(语法)上而言没有任何的问题,但是从实际的生活(业务)上来看,一个人的年龄绝对不可能是-30岁,所以这个时候造成问题的主要原因就是类中的操作对外部可见。

此时,就可以通过封装性来解决此类问题,如果现在要想对类中的属性或方法封装,可以直接使用private关键字完成。

class Person { // 类名称的单词首字母必须大写

private String name ; // 姓名,是一个字符串所以使用String

private int age ; // 年龄是一个整数,所以使用int

public void tell(){ // 定义一个方法

System.out.println("姓名:" + name + ",年龄:" + age) ;

}

}

public class ClassDemo {

public static void main(String args[]){

Person per = new Person() ;

per.name = "张三" ;

per.age = 99999 ;

per.tell() ;

}

}

此时,程序编译之后出现了以下的错误信息:

ClassDemo.java:11: name has private access in Person

per.name = "张三" ;

^

ClassDemo.java:12: age has private access in Person

per.age = 99999 ;

^

2 errors

由于name和age两个属性被private声明了(封装了,私有)所以,现在根本无法被外部所访问,很明显,此时的属性绝对安全,但是封装归封装了,一个问题就出现了,现在的属性无法操作了,无法操作就没有意义了,所以此时,就可以给出一个概念,以后凡是类中的属性在定义的时候必须封装,封装之后的属性一定要通过setter、getter方法设置和取得。Setter和getter方法本身有自己的命名规范。

• 例如:private String name ;

• setter:public void setName(String na)

• getter:public String getName()

class Person { // 类名称的单词首字母必须大写

private String name ; // 姓名,是一个字符串所以使用String

private int age ; // 年龄是一个整数,所以使用int

public void setName(String n){

name = n ;

}

public void setAge(int a){

age = a ;

}

public String getName(){

return name ;

}

public int getAge(){

return age ;

}

public void tell(){ // 定义一个方法

System.out.println("姓名:" + name + ",年龄:" + age) ;

}

}

public class ClassDemo {

public static void main(String args[]){

Person per = new Person() ;

per.setName("张三") ;

per.setAge(99999) ;

per.tell() ;

}

}

此时,虽然是通过setter和getter方法间接的访问了私有属性,但是却没有检验,一旦需要检验,则检验的操作应该放在setter语句之中。

所有的设置应该在setter中完成,而getter方法只是将内容简单的返回即可。

class Person { // 类名称的单词首字母必须大写

private String name ; // 姓名,是一个字符串所以使用String

private int age ; // 年龄是一个整数,所以使用int

public void setName(String n){

name = n ;

}

public void setAge(int a){

if(a0 a200){

age = a ;

}

}

public String getName(){

return name ;

}

public int getAge(){

return age ;

}

public void tell(){ // 定义一个方法

System.out.println("姓名:" + name + ",年龄:" + age) ;

}

}

public class ClassDemo {

public static void main(String args[]){

Person per = new Person() ;

per.setName("张三") ;

per.setAge(99) ;

per.tell() ;

}

}

此时,就通过封装性解决了设置错误内容的问题。

一定要注意的是,封装性出了在属性声明上外,也可以在方法上声明。

private void info(){ // 私有方法

System.out.println("*************************") ;

}

public void tell(){ // 定义一个方法

this.info() ;

System.out.println("姓名:" + name + ",年龄:" + age) ;

}

如果现在调用的是本类中的方法,可以通过“this.方法()”的形式访问。

java继承关系例子

我可以给你举一个,既能练习继承,又能理解多态:

比如说各种银行卡,它们应该有一个共同的父类‘卡’,但是每种卡的利率啊,消费优惠啊,能否透支啊等等是不一样的。当你消费划卡时,写一个用父类对象做参数的方法,但是传进子类的对象,试试效果吧。

java中有什么子类继承父类的实例?

class A\x0d\x0a{\x0d\x0a int x=12;//被继承\x0d\x0a static double y=34;//被继承\x0d\x0a final int xx=123;//被继承,不能修改xx的值,一经初始化就被看作常量使用\x0d\x0a private float r=12.0f;//不能被继承\x0d\x0a A()//不能被继承\x0d\x0a {\x0d\x0a //====构造方法体\x0d\x0a }\x0d\x0a public void f(){}//被继承\x0d\x0a protected void d(){}//被继承\x0d\x0a private void k(){}//不能被继承\x0d\x0a final void gg(){}//被继承,不能被覆盖\x0d\x0a void w(){}//被继承\x0d\x0a//也就是说构造函数和被关键字private修饰的东西都不能被继承 \x0d\x0a}\x0d\x0aclass B extends A\x0d\x0a{\x0d\x0a //========\x0d\x0a //=======\x0d\x0a //A的类体\x0d\x0a}

设计一个同时用到多态、继承、封装的JAVA案例,要简单的

我来给你举个例子吧,共有两个类,一个基本信息类,实现其实信息类中属性的封装及多态性,一个学生类实现对基本信息类的继承以及自有属性的封装。最后给出测试的结果

//基本信息类,实现了对属性name和age的封装,和构造函数的多态

public class BasicInfo {

private String name;

private int 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 BasicInfo() {

super();

name = "张三";

age = 18;

}

public BasicInfo(String name, int age) {

super();

this.name = name;

this.age = age;

}

@Override

public String toString() {

return "BasicInfo [name=" + name + ", age=" + age + "]";

}

}

//Student类从BasicInfo类继承而来,构造函数同样具有多态性,并对属性school进行了封装

public class Student extends BasicInfo{

private String school;

public String getSchool() {

return school;

}

public void setSchool(String school) {

this.school = school;

}

public Student(String school) {

super();

this.school = school;

}

public Student() {

super();

school ="英国克莱登大学";

}

public Student(String name, int age) {

super(name, age);

school ="英国克莱登大学";

}

@Override

public String toString() {

return "Student [school=" + school + ",name="+getName()+",age="+getAge()+"]";

}

}

//测试

public static void main(String[] s){

Student student = new Student();

//我们在这里 只是一句简单的调用构造函数

System.out.println(student);

//但是输出确有详细的内容

//Student [school=英国克莱登大学,name=张三,age=18]

//也可以像以下方式调用

student = new Student("清华大学");

System.out.println(student);

//Student [school=清华大学,name=张三,age=18]

student = new Student("李四", 20);

student.setSchool("北京大学");

System.out.println(student);

//Student [school=北京大学,name=李四,age=20]

}

JAVA继承性案例的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java中继承类、JAVA继承性案例的信息别忘了在本站进行查找喔。

The End

发布于:2022-12-05,除非注明,否则均为首码项目网原创文章,转载请注明出处。